在RelativeLayout中加载片段

时间:2014-11-28 18:28:22

标签: android android-layout

我在FrameLayout中有两个RelativeLayouts。我们的想法是,它们将占据屏幕的左右边缘,第一个视图(在本例中为文本视图)占据屏幕的中间部分。

在每个RelativeLayout中,将有一个复合按钮的垂直列表。每个按钮旁边都有一个片段,单击时会滑动打开。因此,单击屏幕左侧的按钮会导致选项列表滑动到按钮右侧。单击屏幕右侧的按钮会导致选项列表滑动到按钮的左侧。

屏幕左侧的RelativeLayout工作正常。按下按钮会使片段显示在按钮的右侧。但我不能让屏幕右侧的RelativeLayout表现正常。单击其中一个按钮时,其下方的所有按钮都向左滑动。我似乎无法将按钮固定到右边缘,因此碎片始终显示在按钮的左侧,并且屏幕右边缘有任何剩余的按钮。

我做错了什么?有更好的方法吗?

片段附加到Activity onCreate()中的按钮。

这是没有点击任何按钮时的样子

单击左侧的按钮可正确加载片段。一切都停留在左边缘。

单击右侧的按钮是问题所在。按钮不会保持固定在右边缘,而是向左浮动。 GGG的行为有所不同,因为(我认为)片段尚未附加到onClick侦听器。

   <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >


    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textAlignment="center"
        android:text="@string/hello_world"
        android:layout_gravity="center_vertical|center_horizontal" 
        android:background="#000000"/>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:background="#33ffffff">

        <com.example.fragmentbuttonstest.widget.SelectionButton
            android:id="@+id/sb_aaa_selection"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <FrameLayout
            android:id="@+id/sb_aaa_frag_container"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:layout_toRightOf="@+id/sb_aaa_selection"/>

        <com.example.fragmentbuttonstest.widget.SelectionButton
            android:id="@+id/sb_bbb_selection"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/sb_aaa_selection" />
        <FrameLayout
            android:id="@+id/sb_bbb_frag_container"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:layout_toRightOf="@+id/sb_bbb_selection"
            android:layout_below="@+id/sb_aaa_selection" />

        <com.example.fragmentbuttonstest.widget.SelectionButton
            android:id="@+id/sb_ccc_selection"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/sb_bbb_selection" />
        <FrameLayout
            android:id="@+id/sb_ccc_frag_container"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:layout_toRightOf="@+id/sb_ccc_selection"
            android:layout_below="@+id/sb_bbb_selection"/>

    </RelativeLayout>

 <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:background="#33ffffff"
        android:layout_gravity="top|right">

       <com.example.fragmentbuttonstest.widget.SelectionButton
            android:id="@+id/sb_ddd_selection"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/sb_ddd_frag_container" /> 
      <FrameLayout
            android:id="@+id/sb_ddd_frag_container"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"/>


      <com.example.fragmentbuttonstest.widget.SelectionButton
            android:id="@+id/sb_eee_selection"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/sb_ddd_selection"
            android:layout_toRightOf="@+id/sb_eee_frag_container"           />
       <FrameLayout
            android:id="@+id/sb_eee_frag_container"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:layout_below="@+id/sb_ddd_selection" />


      <com.example.fragmentbuttonstest.widget.SelectionButton
            android:id="@+id/sb_fff_selection"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/sb_eee_selection"
            android:layout_toRightOf="@+id/sb_ddd_frag_container" />
      <FrameLayout
            android:id="@+id/sb_fff_frag_container"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:layout_below="@+id/sb_eee_selection" />

    </RelativeLayout>
</FrameLayout>

1 个答案:

答案 0 :(得分:0)

看起来我不会得到回复所以我会分享我想出的解决方案......

我不满意手动定位每个元素但是(到目前为止)我无法通过在布局中包装按钮和片段来使所有内容正确对齐。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical|center_horizontal"
        android:background="#000000"
        android:text="@string/hello_world"
        android:textAlignment="center" />

    <!-- Left side button bar -->

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:background="#33ffffff" />

    <!-- AAA Selection -->

    <com.example.fragmentbuttonstest.widget.SelectionButton
        android:id="@+id/sb_aaa_selection"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <FrameLayout
        android:id="@+id/sb_aaa_frag_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="45dp" />

    <!-- BBB Selection -->

    <com.example.fragmentbuttonstest.widget.SelectionButton
        android:id="@+id/sb_bbb_selection"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="45dp" />

    <FrameLayout
        android:id="@+id/sb_bbb_frag_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="45dp"
        android:layout_marginTop="45dp" />

    <!-- CCC Selection -->

    <com.example.fragmentbuttonstest.widget.SelectionButton
        android:id="@+id/sb_ccc_selection"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="90dp" />

    <FrameLayout
        android:id="@+id/sb_ccc_frag_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="45dp"
        android:layout_marginTop="90dp" />

    <!-- DDD Selection -->

    <com.example.fragmentbuttonstest.widget.SelectionButton
        android:id="@+id/sb_ddd_selection"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="135dp" />

    <FrameLayout
        android:id="@+id/sb_ddd_frag_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="45dp"
        android:layout_marginTop="135dp" />

    <!-- EEE Position Selection -->

    <com.example.fragmentbuttonstest.widget.SelectionButton
        android:id="@+id/sb_eee_selection"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="180dp" />

    <FrameLayout
        android:id="@+id/sb_eee_frag_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="45dp"
        android:layout_marginTop="180dp" />



    <!-- Right Side Button Bar -->
    <!-- Right Side Background -->

    <RelativeLayout
        android:layout_width="45dp"
        android:layout_height="match_parent"
        android:layout_gravity="top|right"
        android:background="#33ffffff" />

    <!-- FFF Selection -->

    <com.example.fragmentbuttonstest.widget.SelectionButton
        android:id="@+id/sb_fff_selection"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="top|right" />

    <FrameLayout
        android:id="@+id/sb_fff_frag_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginRight="45dp" />

    <!-- GGG Selection -->

    <com.example.fragmentbuttonstest.widget.SelectionButton
        android:id="@+id/sb_ggg_selection"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginTop="45dp" />

    <FrameLayout
        android:id="@+id/sb_ggg_frag_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginRight="45dp"
        android:layout_marginTop="45dp" />

    <!-- HHH Selection -->

    <com.example.fragmentbuttonstest.widget.SelectionButton
        android:id="@+id/sb_hhh_selection"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginTop="90dp" />

    <FrameLayout
        android:id="@+id/sb_hhh_frag_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginRight="45dp"
        android:layout_marginTop="45dp" />

    <!-- III Selection -->

    <com.example.fragmentbuttonstest.widget.SelectionButton
        android:id="@+id/sb_iii_selection"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginTop="135dp"
        android:layout_toRightOf="@+id/sb_player_frag_container" />

    <FrameLayout
        android:id="@+id/sb_iii_frag_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginRight="45dp"
        android:layout_marginTop="90dp" />

    <!-- JJJ Selection -->

    <com.example.fragmentbuttonstest.widget.SelectionButton
        android:id="@+id/sb_jjj_selection"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginTop="180dp" />

    <FrameLayout
        android:id="@+id/sb_jjj_frag_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginRight="45dp"
        android:layout_marginTop="135dp" />

</FrameLayout>