使用标题行扩展片段容器

时间:2013-09-01 16:42:46

标签: java android android-fragments

我有一个带有片段容器的活动,用于在我的应用中显示对象的不同细节。

<?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"
android:layout_gravity="center">


   <LinearLayout
          android:orientation="horizontal"
          android:id="@+id/fragment_container"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          >
   </LinearLayout>

</LinearLayout>

这很好用。标签显示正确。

现在我想在此actitivy中添加一个标题行,显示“静态”内容,而不管当前片段的详细信息。标题行应位于顶部,下面是片段容器。所以我将布局改为:

<?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"
android:layout_gravity="center">

      <LinearLayout 
          android:orientation="horizontal"
          android:id="@+id/LabeledObjectHeaderInfo"
          android:layout_width="match_parent"
          android:layout_height="wrap_content" >


        <TextView
            android:id="@+id/txtHeaderID"
            android:layout_width="0dp" 
            android:layout_height="wrap_content"
            android:layout_weight=".10"
            android:gravity="right"
            android:padding="10dip"
            android:text="@string/txtHeaderID"
            android:textSize="20sp" />

        <TextView
            android:id="@+id/txtHeaderIDValue"
           android:layout_width="0dp" 
            android:layout_height="wrap_content"
             android:layout_weight=".20"
            android:gravity="left"
            android:padding="10dip"
            android:text="test"
            android:textSize="20sp" />      

        <TextView
            android:id="@+id/txtHeaderName"
           android:layout_width="0dp" 
            android:layout_height="wrap_content"
             android:layout_weight=".20"
            android:gravity="left"
            android:padding="10dip"
            android:text="@string/txtHeaderName"
            android:textSize="20sp" />   

        <TextView
            android:id="@+id/txtHeaderNameValue"
            android:layout_width="0dp" 
            android:layout_height="wrap_content"
             android:layout_weight=".50"
            android:gravity="left"
            android:padding="10dip"
            android:text="test"
            android:textSize="20sp" />           


   </LinearLayout >    

   <LinearLayout
          android:orientation="horizontal"
          android:id="@+id/fragment_container"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:layout_marginTop="30dp"
          >
   </LinearLayout>

</LinearLayout>

我现在的问题是,只显示标题,但不显示片段的内容。我到目前为止只更改了布局文件(正如您可以通过“test”-texts看到的那样),但没有其他代码。

我做错了什么,我的错误在哪里?

2 个答案:

答案 0 :(得分:0)

试试这个

在容器LinearLayout中,你有android:orientation="horizontal"显示它的第一个子LinearLayout,即Header,但隐藏了它的第二个子LinearLayout,即右边的内容。

<?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"
android:layout_gravity="center">

<!-- Inner Layouts -->

</LinearLayout>

将其更改为android:orientation="vertical"

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center">

<!-- Inner Layouts -->

</LinearLayout>

答案 1 :(得分:0)

只需在主要版面垂直中进行定位,就可以正常使用。

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

因为你的方向是水平的,所以片段布局就在右边。