【问题标题】:marginTop and marginBottom don't work for LinearLayoutmarginTop 和 marginBottom 不适用于 LinearLayout
【发布时间】:2014-01-17 21:54:14
【问题描述】:

主(容器)线性布局:

<LinearLayout
    android:id="@+id/LinearHome"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
</LinearLayout>

子线性布局(我通过膨胀新的动态添加它们):

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/lnote"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp" />

有什么问题?

【问题讨论】:

  • 你能提供你如何膨胀它们的代码吗?
  • LinearLayout lNewNote = (LinearLayout) getLayoutInflater().inflate(R.layout.note_layout, null); HomeContainer.addView(lNewNote);
  • 我以前遇到过这个问题,但我在那个项目中找不到这个地方。在某些情况下,LayoutParams 会丢失。尝试以编程方式设置边距,或者将 inflate(R.layout.note_layout, null) 的第二个参数设置为父级(主容器)而不是 null

标签: android android-linearlayout


【解决方案1】:

把孩子改成这个

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:background="@drawable/lnote"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp" />

【讨论】:

    【解决方案2】:

    将inflate()方法的第二个参数设置为父容器(主容器)

    LinearLayout lNewNote = (LinearLayout) getLayoutInflater().inflate(R.layout.note_layout, HomeContainer); 
    HomeContainer.addView(lNewNote);
    

    我相信它对我有用。 (我猜 HomeContainer 是一个对象,而不是一个类)

    【讨论】:

      猜你喜欢
      • 2018-06-13
      • 2018-03-15
      • 1970-01-01
      • 1970-01-01
      • 2021-05-26
      • 2016-12-02
      • 1970-01-01
      • 2012-09-27
      • 2022-09-24
      相关资源
      最近更新 更多