关于listview&滚动视图

时间:2013-11-25 04:01:13

标签: android android-listview

这是一个古老的问题.Listview位于scrolllayout旁边的scrollview内。 也许有两个解决方案: 1.放弃使用它。 2.确认listview的高度或使高度动态。当我以这种方式编码时,我发现焦点始终位于listview的底部。而request.setFocus()不能工作.... / p>

如何处理?

2 个答案:

答案 0 :(得分:2)

您不应将列表视图放在ScrollView中。如果要在列表上方或下方显示某些内容并希望将它们一起滚动到列表中,则只需使用页眉或页脚视图。 一个例子:

主屏幕内容:

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

页脚视图(list_footer.xml)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"><!-- the footer content -->
</LinearLayout>

在代码中添加页脚:您应该在为列表设置适配器之前执行此操作

 ListView listView = (ListView) view.findViewById(R.id.main_list);
 View footer = LayoutInflater.from(getActivity()).inflate(R.layout.list_footer, listView, false);
 listView.addFooterView(footer);

        listView.setAdapter(yourAdapter);

答案 1 :(得分:0)

A ScrollView can only hold a child。如果线性输出确实是必要的(通常它只是一个持有者),你应该这样做:

<ScrollView>
    <LinearLayout>
        <ListView>
        <!-- Blahblah -->
        </ListView>
        <LinearLayout>
        <!-- Blahblah -->
        </LinearLayout>
    </LinearLayout>
</ScrollView>