我正在尝试使用三个片段和两个按钮按钮栏创建一个主细节UI。出于某种原因,添加按钮栏后,片段不会显示在UI中。我怀疑它与布局的方向有关,但我会在这里留给专家。
以下是UI的XML布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:orientation="horizontal" >
<fragment
android:id="@+id/mainBodyFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
class="com.dreamcode.healttracker.MainBodyArea" />
<fragment
android:id="@+id/subBodyFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
class="com.dreamcode.healttracker.SubBodyArea" />
<fragment
android:id="@+id/symptomFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
class="com.dreamcode.healttracker.Symptom" />
<LinearLayout
android:id="@+id/footer"
style="@android:style/ButtonBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="#F0F0F0"
android:orientation="horizontal" >
<Button
android:id="@+id/btn_Generate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/borderless_button"
android:text="@string/generate" />
<View
android:layout_width="1dp"
android:layout_height="fill_parent"
android:background="#909090" />
<Button
android:id="@+id/btn_ViewList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/borderless_button"
android:text="@string/viewlist" />
</LinearLayout>
</LinearLayout>
答案 0 :(得分:0)
您的第一个LinearLayout
的方向是水平的(因此一切都将与其他人相邻),而不是使用width="match_parent"
添加按钮栏,因此按钮栏使用保持垂直空间。如果您想将片段放在每个片段之下,请将第一个片段的orientation
更改为垂直片段。如果片段彼此相邻且下面的按钮栏使用以下代码:(代码中没有关闭第一个LinearLayout
!)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<fragment
android:id="@+id/mainBodyFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
class="com.dreamcode.healttracker.MainBodyArea" />
<fragment
android:id="@+id/subBodyFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
class="com.dreamcode.healttracker.SubBodyArea" />
<fragment
android:id="@+id/symptomFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
class="com.dreamcode.healttracker.Symptom" />
</LinearLayout> <!-- added -->
<LinearLayout
android:id="@+id/footer"
style="@android:style/ButtonBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="#F0F0F0"
android:orientation="horizontal" >
<Button
android:id="@+id/btn_Generate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/borderless_button"
android:text="@string/generate" />
<View
android:layout_width="1dp"
android:layout_height="fill_parent"
android:background="#909090" />
<Button
android:id="@+id/btn_ViewList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/borderless_button"
android:text="@string/viewlist" />
</LinearLayout>
</LinearLayout>
答案 1 :(得分:0)
这应该可以解决问题:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/footer"
style="@android:style/ButtonBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#F0F0F0"
android:orientation="horizontal" >
<Button
android:id="@+id/btn_Generate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/borderless_button"
android:text="@string/generate" />
<View
android:layout_width="1dp"
android:layout_height="fill_parent"
android:background="#909090" />
<Button
android:id="@+id/btn_ViewList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/borderless_button"
android:text="@string/viewlist" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/footer"
android:baselineAligned="false"
android:orientation="horizontal" >
<fragment
android:id="@+id/mainBodyFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
class="com.dreamcode.healttracker.MainBodyArea" />
<fragment
android:id="@+id/subBodyFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
class="com.dreamcode.healttracker.SubBodyArea" />
<fragment
android:id="@+id/symptomFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
class="com.dreamcode.healttracker.Symptom" />
</LinearLayout>
</RelativeLayout>