我正在学习使用Hierarch Viewer tool,但同时有任何关于下面布局无法正确渲染的提示,我们表示赞赏。
我正在尝试渲染“html”表格视图。使用自定义列表适配器正确呈现内容(表正文)。这有效。但是,当我添加一个textView(下面的text_test)用作标题时,列表不再呈现。我可以看到代码流经我的适配器(填充视图持有者等),但在屏幕上我只看到标题文本,没有listView。我以前使用FrameLayout(如注释中所述),但后来切换到LinearLayout。
感谢。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.my_list_view, container,
false);
ListView lv = (ListView)view.findViewById(R.id.my_list_view_one);
// Tell the list view which view to display when the list is empty
//lv.setEmptyView(getActivity().findViewById(R.id.my_list_view_empty));
// Set up the adapter
mCustomAdapter = new ListAdapterMyType(inflater, new ArrayList<MyType>());
lv.setAdapter(mCustomAdapter);
return view;
}
<?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">
<!-- The frame layout is here since we will be showing either
the empty view or the list view. -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/text_test"/>
<ListView
android:id="@+id/my_list_view_one"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawSelectorOnTop="false"/>
<!-- Here is the view to show if the list is emtpy -->
<TextView android:id="@+id/my_list_view_empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/list_no_items"
android:visibility="gone"/>
</LinearLayout>
</LinearLayout>
答案 0 :(得分:1)
但是,当我添加一个textView(下面的text_test)用作标题时,列表不再呈现。
TextView在宽度和高度都设置为match_parent
,因此它将填满整个屏幕......要将TextView放在ListView上方,请尝试:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/text_test"/>
<ListView
android:id="@+id/my_list_view_one"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawSelectorOnTop="false"/>
<!-- Here is the view to show if the list is emtpy -->
<TextView android:id="@+id/my_list_view_empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/list_no_items"
android:visibility="gone"/>
</LinearLayout>
我删除了外部的LinearLayout,因为它只有一个孩子它没有做任何事情。我还将剩余的LinearLayout的方向更改为vertical
,并将标题TextView高度设置为wrap_content
。
如果您希望自定义标题与ListView一起滚动,请使用addHeaderView()
方法(在调用setAdapter()
之前)而不是布局中单独的TextView。当ListView为空时,此方法也会隐藏标题。