片段中的MergeAdapter布局问题

时间:2011-09-27 23:41:50

标签: android android-layout android-fragments commonsware-cwac

我正在尝试使用Fragments在Android中进行布局。我开始使用Commonsware的MergeAdapter,但我遇到了一些奇怪的麻烦。布局工作得很好,但现在我明白了:

http://img856.imageshack.us/img856/2796/layoutbug.png

有几个问题:白色条带的文字应该在其长度上一直延伸。我将TextView设置为白色背景以确保正确设置宽度。它下面的复选框也应该说“问题?”但由于某种原因,它试图包装文本。

以下是要添加的布局代码:

<?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:orientation="vertical">
    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Instructions" />
    <TextView android:id="@+id/tvInstructions" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Instructions go here" android:textSize="32dp" android:background="#FFFFFF"></TextView>
    <LinearLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:orientation="horizontal" android:paddingTop="24dp">
        <CheckBox android:id="@+id/cbIssues" android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="0dp" android:text="Issues?" />
        <TextView android:id="@+id/tvStation" android:layout_height="wrap_content" android:layout_width="0dp" android:layout_weight=".5" android:text="Station:" />
        <Spinner android:id="@+id/spStation" android:layout_height="wrap_content" android:layout_width="0dp" android:layout_weight=".5"/>
    </LinearLayout>
    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Pending data" />
</LinearLayout>

这就是我在Fragment的onActivityCreated中如何充气:

LayoutInflater inflater = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
MergeAdapter _adapter = new MergeAdapter();

View observationHeaderView = inflater.inflate(R.layout.observationheader, getListView(), false);
_adapter.addView(observationHeaderView);

我觉得这与我如何夸大布局有关。任何帮助,将不胜感激。感谢。

2 个答案:

答案 0 :(得分:1)

match_parent android:layout_height AdapterView用于LinearLayout内容,例如您的根ListView

您也可以考虑暂时将标题布局放在LinearLayout之外(例如,在垂直ListView中也持有ListView)并调试之前再添加使用它的复杂功能在Spinners

除此之外,启动Hierarchy View(Eclipse透视图或独立版)并尝试找出布局规则出错的位置。

另外,我不确定你的ListView在Honeycomb的{{1}}内的效果如何。

答案 1 :(得分:0)

我的问题似乎是layout_width在我标题中的某些位置match_parentwrap_content时应该是<?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:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Instructions" /> <TextView android:id="@+id/tvInstructions" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Instructions go here" android:textSize="32dp" android:background="#FFFFFF"></TextView> <LinearLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:orientation="horizontal" android:paddingTop="24dp"> <CheckBox android:id="@+id/cbIssues" android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="wrap_content" android:text="Issues?" /> <TextView android:id="@+id/tvStation" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight=".5" android:text="Station:" /> <Spinner android:id="@+id/spStation" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight=".5"/> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Pending data" /> </LinearLayout> 。以下工作:

{{1}}