Android-复杂视图还是其他什么?

Android-复杂视图还是其他什么?,android,layout,view,Android,Layout,View,我想创建一个包含两个列表的活动。暂时,我创建了两个列表视图,其中包含在适当的*.xml文件中声明的不同行,并将屏幕分成50/50,但看起来不太好。这就是为什么我想用第一个listView中的行、分隔符和第二个listView中的行创建一个scrollview 我可以使用我已有的(定义行布局的xml文件)吗 我需要创建新的类扩展视图还是有其他方法 我必须补充一点,每一行大约有5个需要设置的控件,所以这不是一个非常简单的行。您可以按自己的话做,它仍然使用listView。ListView可能很棘手,

我想创建一个包含两个列表的活动。暂时,我创建了两个列表视图,其中包含在适当的*.xml文件中声明的不同行,并将屏幕分成50/50,但看起来不太好。这就是为什么我想用第一个listView中的行、分隔符和第二个listView中的行创建一个scrollview

我可以使用我已有的(定义行布局的xml文件)吗

我需要创建新的类扩展视图还是有其他方法


我必须补充一点,每一行大约有5个需要设置的控件,所以这不是一个非常简单的行。

您可以按自己的话做,它仍然使用listView。ListView可能很棘手,因为您必须将行数与适配器中的项目数相匹配。我想说的是,你可以使用滚动视图来启动。除非你谈论几百行,否则你不会看到性能的提高

下面是如何膨胀一行,并以编程方式将其添加到scrollview

ScrollView scrollView = (ScrollView)findViewById(R.id.scrollView);
...
for(int i = 0; i < firstList.size(); i++){
   //here my row was a relative layout.  Could be LinearLayout, or anything 
   RelativeLayout row = (RelativeLayout)View.inflate(this, R.layout.list_row, null);
   tv = (TextView)row.findViewById(R.id.tv);
   tv.setText("Some text");
   ...initialize other views in row
   scrollView.addView(row);
}
ScrollView ScrollView=(ScrollView)findViewById(R.id.ScrollView);
...
对于(int i=0;i
然后重复第二个列表,别忘了插入你可能需要学习的分隔符

您可以自定义列表项的顺序。 假设您在屏幕上总共有10个项目要显示,并且您希望将其分为5/5

下面是根据上述场景的基本逻辑

@Override
public View getView(int position, View convertView, ViewGroup parent) 
    {

     if (postion<5)
    {
    //Write your code here for first five items 
    }
    else{
    //Write your code here for rest five items 
    }

}
@覆盖
公共视图getView(int位置、视图转换视图、视图组父视图)
{

如果(position)你真的需要滚动视图吗?为什么不把它们都添加到同一个滚动视图中呢?这很容易编程实现,我希望它是分开的-所以第一行是一个标签,可能有图像,然后是第一个列表,然后是分隔符,另一个标签,可能是图像,然后是第二个列表。我怎样才能在列表中添加分隔符呢ListView条目的ird类型?您的意思是,在插入许多不同类型的项目后,我只需在getView中做一个if语句,以了解它是第一种类型还是另一种类型?是的,基本上。您将有3种(可能更多)类型的行。您有第一个列表行、第二个列表行和一个分隔符(带图像,或其他)。您将插入一个分隔符,然后循环第一个列表。插入第二个分隔符,循环第二个列表谢谢!这将使一切变得更简单。我正在阅读有关这种解决方案的文章,想问您是否知道这些视图持有者是什么?看起来我需要它们。视图持有者只是一个保存您的视图的对象视图,便于访问和组织。