在另一个之上显示框架布局



我有一个 id listLayout 的框架布局,其中包含按钮。我希望它刚好高于其他带有 id news_fragment的框架布局,但它除此之外。

这是 xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <FrameLayout
        android:id="@+id/listLayout"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content">
        <Button
            android:id="@+id/lists"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:background="@drawable/btn_black_xml"           
            android:padding="8dp"
            android:text="List"
            android:textColor="#ffffff"
            android:textSize="20dp" />
        </FrameLayout>

    <FrameLayout
              android:id="@+id/news_fragment"
              android:layout_weight="2"
              android:layout_width="0dp"              
              android:layout_height="match_parent">

        </FrameLayout>
    <FrameLayout
              android:id="@+id/channel_fragment"
              android:layout_weight="3"
              android:layout_width="0dp"
              android:layout_height="match_parent" />
</LinearLayout>

LinearLayout是水平的,这就是为什么子视图彼此相邻显示的原因。 尝试将其垂直放置:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"> 
...

我希望我能很好地理解你的问题。

还要注意,你应该简化你的布局:在某些布局中有一个单一的视图是无用的,而且会消耗资源:

换句话说:

<FrameLayout
   android:id="@+id/listLayout"
   android:layout_weight="1"
   android:layout_width="0dp"
   android:layout_height="wrap_content">
<Button
    android:id="@+id/lists"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:background="@drawable/btn_black_xml"           
    android:padding="8dp"
    android:text="List"
    android:textColor="#ffffff"
    android:textSize="20dp" />
</FrameLayout>

不好,FrameLayout没用。

看看它是否是正在寻找的:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <FrameLayout
        android:id="@+id/listLayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
        <Button
            android:id="@+id/lists"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:padding="8dp"
            android:text="List"
            android:textColor="#ffffff"
            android:textSize="20dp" />
    </FrameLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="fill_parent" >
        <FrameLayout
            android:id="@+id/news_fragment"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1" >
        </FrameLayout>
        <FrameLayout
            android:id="@+id/channel_fragment"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1" >
        </FrameLayout>
    </LinearLayout>
</LinearLayout>

像这样将它们都放在垂直线性布局中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        <FrameLayout
            android:id="@+id/listLayout"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" >
            <Button
                android:id="@+id/lists"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:background="@drawable/btn_black_xml"
                android:padding="8dp"
                android:text="List"
                android:textColor="#ffffff"
                android:textSize="20dp" />
        </FrameLayout>
        <FrameLayout
            android:id="@+id/news_fragment"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="2" >
        </FrameLayout>
    </LinearLayout>
    <FrameLayout
              android:id="@+id/channel_fragment"
              android:layout_weight="3"
              android:layout_width="0dp"
              android:layout_height="match_parent" />
</LinearLayout>

最新更新