我在stackover中听说可以将listview放在scrollview中的listview或listview中,因此可以在适配器中放置一个适配器。内部可滚动元素将失去scroll属性。 但重用呢? 如果它是listview中的listview,并且都有自己的listadapter或派生的基础......那么它们是否都可以重用自己的项目?或者只是其中一个?
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
android:text="Artists"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="visible" />
<ListView
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button
android:text="Albums"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<ListView
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button
android:text="Tracks"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<ListView
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button
android:text="Playlists"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<ListView
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</ListView>
</FrameLayout>
答案 0 :(得分:2)
我猜你需要的是由commonsguy的Mergeadapter
:https://github.com/commonsguy/cwac-merge实现的。
这需要Adapters
和Views
,并将其显示为合并后的Listview
。
MergeAdapter接受适配器和视图的混合,并将它们显示为 一个连续的整体到它倾注的任何ListView。这是 适用于您拥有多个数据源的情况,或者您拥有多个数据源的情况 少数普通视图与数据列表等混合在一起。
只需创建一个MergeAdapter并调用addAdapter(),addView()或 addViews()(后者接受List),然后附加你的适配器 到ListView。
还有MergeSpinnerAdapter用于Spinner小部件。
答案 1 :(得分:1)
This是我为我的案例选择的,我需要RecyclerView
内的水平ListView
。
我们的想法是将内部视图(例如RecyclerView
)视为您的ListView
项之一:
findViewById()
&amp;在LinearLayoutManager
,getView()
if (convertView == null)
getView()
RecyclerView
。希望它对你有所帮助。