一个活动中的Android多列表视图

一个活动中的Android多列表视图,android,listview,android-activity,Android,Listview,Android Activity,我试图在一个活动中放置多个列表视图 我设法让其中一个正常工作,但我不确定如何让第二个和第三个列表视图显示在彼此下方的同一屏幕上 XML: 代码: 基于Android文档,您不应该以这种方式处理多个ListView,因为它不像其他视图那样计算自己的高度,而是占用可用空间 您可以使用选项卡,这样您就可以在同一活动中,但在不同的选项卡中显示3个ListView。下面是一个关于如何做到这一点的例子 基本上,您创建3个片段,每个ListView 1个,然后使用FragmentPageAdapter子类返回

我试图在一个活动中放置多个列表视图

我设法让其中一个正常工作,但我不确定如何让第二个和第三个列表视图显示在彼此下方的同一屏幕上

XML:

代码:


基于Android文档,您不应该以这种方式处理多个ListView,因为它不像其他视图那样计算自己的高度,而是占用可用空间

您可以使用选项卡,这样您就可以在同一活动中,但在不同的选项卡中显示3个ListView。下面是一个关于如何做到这一点的例子


基本上,您创建3个片段,每个ListView 1个,然后使用FragmentPageAdapter子类返回正确的片段。

您可以将ListView的高度设置为0dp,并在每个ListView中使用android:layout\u weight=1

<ListView
    android:id="@+id/list"
    android:layout_height="0dp"
    android:layout_width="match_parent"
    android:layout_weight="1">
</ListView>

如果您的意思是在z轴的下方,那么您可以将LinearLayout更改为FrameLayout,请将高度设置为与所有列表视图中的父视图相匹配,只需将可见性设置为不希望显示的列表中的Gone即可。

您确定这不可能吗?我想我见过其他人用它。我不知道如何这样做对我来说有点复杂。尝试这样做并不顺利:你能给我一个这个模板吗?让我看看我是否能找到一个汉克很多!真的很感激!没有真正回答我的问题哈你是什么意思?如果你照我说的做,名单会一个接一个。。。
public class workoutlist extends Activity {
    ListView listView, listView2, listView3 ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.workoutlist);

        // Get ListView object from xml
        listView = (ListView) findViewById(R.id.list);
        // Defined Array values to show in ListView
        String[] values = new String[] { "Option 1",
                "Option 2",
                "Option 3",
        };

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, android.R.id.text1, values);
        listView.setAdapter(adapter);
        // ListView Item Click Listener
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {


                // Show Alert
                if(position == 0) {
                    //code specific to first list item
                    Toast.makeText(getApplicationContext(),
                            "Coming Soon." , Toast.LENGTH_SHORT)
                            .show();

                }

                if(position == 1) {
                    //code specific to 2nd list item
                    Toast.makeText(getApplicationContext(),
                            "Coming Soon." , Toast.LENGTH_SHORT)
                            .show();
                }

                if(position == 2) {
                    //code specific to 2nd list item
                    Toast.makeText(getApplicationContext(),
                            "Coming Soon." , Toast.LENGTH_SHORT)
                            .show();
                }

            }

        });
    }

}
<ListView
    android:id="@+id/list"
    android:layout_height="0dp"
    android:layout_width="match_parent"
    android:layout_weight="1">
</ListView>