Android 在安卓系统中,如何在不划分ActivityScreen的情况下实现一个接一个的多列表视图
我在同一个Android 在安卓系统中,如何在不划分ActivityScreen的情况下实现一个接一个的多列表视图,android,listview,android-listview,android-custom-view,Android,Listview,Android Listview,Android Custom View,我在同一个活动中使用3个列表视图一个接一个,但我看不到我的第三个列表视图,第二个列表视图在其内部滚动,我需要将所有三个列表视图依次滚动到一个页面中。 如果我使用android:layout_weight=“1”属性,它通过分割页面来显示所有列表视图,但我不想分割活动屏幕,而是一个接一个地显示所有列表视图 有没有人能给我同样的指导,下面是我的xml布局,其中包括这三个列表视图:- <LinearLayout xmlns:android="http://schemas.android
活动中使用3个列表视图
一个接一个,但我看不到我的第三个列表视图,第二个列表视图在其内部滚动,我需要将所有三个列表视图依次滚动到一个页面中。
如果我使用android:layout_weight=“1”
属性,它通过分割页面来显示所有列表视图,但我不想分割活动屏幕,而是一个接一个地显示所有列表视图
有没有人能给我同样的指导,下面是我的xml布局,其中包括这三个列表视图:-
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ListView
android:id="@+id/listTopTenBatsmans"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>
<ListView
android:id="@+id/listTopTenBowlers"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>
<TextView
android:id="@+id/tSometextField"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Fall of Wickets"
android:textColor="@color/red"
android:textSize="18sp"
android:typeface="sans"
android:textStyle="bold"
android:background="#ffdfe5"
android:paddingLeft="5dp" />
<ListView
android:id="@+id/listTopTenFielders"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
您应该使用适配器的方法getViewTypeCount()
和getItemViewType(int-position)
,并且所有项目只能使用一个ListView
更多将列表高度设置为具体值,而不是match\u parent
或wrap\u content
根据前面的评论,您有几个选项:
- 像@snachmsm建议的那样,在适配器中使用
- 或者使用将多个适配器包装成一个适配器
- 或参考最近推出的
如果已经设置了三个ListView
s和适配器,最快的解决方案是使用MergeAdapter
。更现代的方法是用当前的实现替换RecyclerView
,但这可能意味着一些更严重的代码更改 几个选项:在适配器中使用,或查看,或。@MH。谢谢你为我工作,请把它写在答案里,这样我就可以接受你的答案了。再次感谢你,伙计。在这种情况下,这将划分活动屏幕。我需要一旦第一个列表视图被滚动,然后到它的底部,然后下一个列表视图应该出现,一旦滚动,那么第三个应该出现。好的。对不起,我误解你了。然后,您需要的是一个带有标题的listview。看看这个库:我现在不使用标题,只需拖放、滑动删除、撤消等,但它也提供了这些功能。在play store查看示例应用程序。我的所有三个列表视图在每个适配器中都包含不同的列和行,因此我不能对其中所有三种类型的不同内容或项目使用一个列表视图。您没有任何其他选项,请将代码重写到一个适配器,这样应该可以完成。。。由于单个列表视图的回收方法,没有其他方法。另一个选项是为每个ListView
(adapterCount*getView.getHeight)设置固定高度,并将它们全部放在其他ScrollView
中的LinearLayout
内,但请注意,循环将被禁用,所有列表中的所有项目都将在开始时绘制(对性能不利)@PravinsinghWaghela:您的论点并不成立,因为这正是项视图类型的用途。。。无论如何,如果您已经设置了三个ListView和适配器,最快的解决方案是使用MergeAdapter
(请参阅我前面对您的问题的评论)。更现代的方法是用您当前的实现换取RecyclerView
,但这将意味着一些严重的代码更改。@MH。你能为我提供一些如何做的指导链接吗?有演示吗?@PravinsinghWaghela:确实有吗?他们都很不一样。除了前面给出的链接(即,MergeAdapter
有一个链接),谷歌是你最好的朋友,你可以帮我找到例子,因为我正在使用MergeAdapter。我可以合并适配器,然后将该适配器设置为列表视图。但是当我尝试使用mergeAdapter.addView(视图视图)添加一些视图时;方法。我在addView()上得到java.lang.NoClassDefFoundError;方法行。@PravinsinghWaghela:找不到什么类?如果您没有使用Gradle/Maven将MergeAdapter
作为依赖项,那么您可能忽略了它也依赖于的事实。因此,如果将MergeAdapter
添加为jar
,请确保对SackOfViewsAdapter
执行相同的操作。后者在将视图直接添加到MergeAdapter
时发挥作用(在内部,视图将被包装到SackOfViewsAdapter
实例中)。再次感谢mate,你是一个真正的救生员。有什么方法可以让我在任何社交网站上关注你吗??
ListView1
Element1 Ele1 E1
Element2 Ele2 E2
Element3 Ele2 E3
Element4 Ele4 E4
Element5 Ele5 E5
Element6 Ele6 E6
Element7 Ele7 E7
Element8 Ele8 E8
Element9 Ele9 E9
Element10 Ele10 E10
ListView2
Item1 It1 I1
Item2 It2 I2
Item3 It2 I3
Item4 It4 I4
Item5 It5 I5
Item6 It6 I6
Item7 It7 I7
Item8 It8 I8
Item9 It9 I9
Item10 It10 I10
SomeTextView
Listview3
Source1 Sou1 S1
Source2 Sou2 S2
Source3 Sou2 S3
Source4 Sou4 S4
Source5 Sou5 S5
Source6 Sou6 S6
Source7 Sou7 S7
Source8 Sou8 S8
Source9 Sou9 S9
Source10 Sou10 S10