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