将framelayout显示在另一个之上

时间:2013-06-12 14:38:30

标签: android android-framelayout

我有一个id listLayout的framelayout,其中包含按钮。我希望它位于另一个标识为news_fragment的framelayout之上,但除此之外它还会出现。

这是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>

3 个答案:

答案 0 :(得分:2)

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没用。

答案 1 :(得分:0)

将它们放在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>

答案 2 :(得分:0)

看看它是否正在寻找:

<?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>