【问题标题】:LinearLayout android layout_height线性布局 android layout_height
【发布时间】:2014-11-21 05:58:43
【问题描述】:

帮助我处理 XML 布局。

我在活动上有三个LinearLayout,所有LinearLayout都有垂直位置(从上到下)

My LinearLayout positions

  1. 第一个 LinearLayout 有 android:layout_height="30px", android:layout_width="fill_parent"
  2. 第二个LinearLayout有android:layout_height="fill_parent", android:layout_width="fill_parent"
  3. 第三个LinearLayout有android:layout_height="30px",android:layout_width="fill_parent"

但是当第二个 LinearLayout 设置为 fill_parent 时,它会填满全屏(从第一个 Layout 到屏幕底部),而第三个 LinearLayout 无法显示!

我需要如何填充第二个布局?

帮帮我

【问题讨论】:

  • 不要使用 px 使用 dp

标签: android android-layout layout android-linearlayout fill-parent


【解决方案1】:

简单地使用这个。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/MainLinear"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:background="#fbfbfb"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="30dp"
    android:orientation="horizontal" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.9"
    android:orientation="vertical" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="30dp"
    android:orientation="horizontal" />
</LinearLayout>
</LinearLayout>

【讨论】:

    【解决方案2】:

    您可以根据需要使用相对布局:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:orientation="vertical" >
    </LinearLayout>
    
    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:orientation="vertical" >
    </LinearLayout>
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/linearLayout1"
        android:layout_above="@+id/linearLayout2"
        android:orientation="vertical" >
    </LinearLayout>
    
    </RelativeLayout>
    

    【讨论】:

    • @Serjaru 如果对你有帮助,你能接受我的回答吗?
    【解决方案3】:

    诀窍是不要为此使用fill_parent,而是使用0dp,并使用android:layout_weight="1" 给它一个权重。这意味着它将占用所有可用的额外空间

    【讨论】:

      【解决方案4】:

      你必须给中间的线性布局赋予权重,这样它才能占据整个高度。

      try this for middle linear layout,
      
         <LinearLayout
          android:layout_width="fill_parent"
          android:layout_height="0dp"
          android:layout_weight="1" >
          </LinearLayout>
      

      【讨论】:

        【解决方案5】:

        如果将height="fill_parent"设置为中间布局,它会占用父视图的高度,因此第3个视图将不可见(超出屏幕)

        1st layout : android:layout_height="30px", android:layout_width="match_parent"
        2nd layout : android:layout_height="0dp", android:layout_width="match_parent", android:layout_weight="1"
        3rd layout : android:layout_height="30px", android:layout_width="match_parent"
        

        您应该使用“dp”而不是“px”,以在不同的屏幕密度上获得相同的尺寸。

        (“fill_parent”已弃用,您应该使用“match_parent”,它也是如此)

        【讨论】:

          猜你喜欢
          • 2021-06-21
          • 2013-05-19
          • 1970-01-01
          • 1970-01-01
          • 2014-12-24
          • 2017-09-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多