FrameLayout内的FrameLayout和父FrameLayout右侧的FrameLayout定位?

时间:2012-12-10 13:54:13

标签: android android-layout android-framelayout

我正在尝试创建一个包含子Framelayout的Framelayout,我无法将子Framelayout定位到父Framelayout的右侧!。

我尝试使用android:foregroundGravity="right"android:layout_weight="1"

 <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/listView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:layout_weight="1">    

<com.example.ListViewActivity
        android:id="@+id/list_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
</com.example.ListViewActivity>

    <FrameLayout
        android:id="@+id/indexRight"
        android:layout_width="36dp"
        android:layout_height="fill_parent"
        android:layout_gravity="left"
        android:background="@color/white"      
        android:orientation="vertical" >

    </FrameLayout>

</FrameLayout>

屏幕截图:enter image description here

如上图所示,我想将白色FrameLayout移动到右边。

由于

1 个答案:

答案 0 :(得分:1)

FrameLayout上的Android Documentation

  

FrameLayout旨在阻挡屏幕上要显示的区域   单个项目

您应该以root身份使用LinearLayoutRelativeLayout,除非您希望在任何给定时间只显示一个孩子。我假设com.example.ListViewActivity是您已实施的自定义视图,而不是实际的Activity

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/listView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">    

    <com.example.ListViewActivity
        android:id="@+id/list_view"
        android:layout_width="0dp"
        android:layout_height="fill_parent" 
        android:layout_weight="1">
    </com.example.ListViewActivity>

    <!-- This FrameLayout will be located on the right side, with the ListView on its left side -->
    <FrameLayout
        android:id="@+id/indexRight"
        android:layout_width="36dp"
        android:layout_height="fill_parent"
        android:background="@color/white">
        <!-- SINGLE child here -->
    </FrameLayout>
</LinearLayout>