按钮单击时,在同一布局中显示列表视图或网格视图

时间:2016-11-02 06:23:21

标签: android android-layout listview android-gridview

在我的屏幕上,我必须以Listview或Gridview的形式显示我的数据,点击用户按钮“Listview”按钮和“Gridview按钮”,

我为listview和Gridview创建了两个不同的布局文件我想让他们按照用户需要显示当他点击列表视图按钮时我希望它显示列表中的数据以及当用户点击Gridview按钮时我想要显示用户在网格视图中的数据。

非常感谢您的帮助。感谢。

3 个答案:

答案 0 :(得分:3)

有很多方法可以实现这一目标:

  1. 将ListView和GridView堆叠在FrameLayout中,当您想要在这些视图之间切换时,将可见性GONE设置为一个视图,将VISIBLE设置为另一个视图,然后反之亦然。

  2. 将ListView和GridView放在ViewFlipper或者使用ViewSwitcher

  3. 最后,只使用GridView,但是当您想要转换到列表视图时,以编程方式将列数设置为1.

答案 1 :(得分:0)

答案 2 :(得分:0)

您可以使用RecyclerView而不是ListView

recyclerview有layoutManager,你可以设置它们LinearLayout(与简单的listView相同)或GridView

所以你可以创建线性和网格布局管理器,当用户按下按钮changeLayoutManager

 RecyclerView  recyclerView = (RecyclerView) findViewById(R.id.mainRecycleView_RCL);
 LinearLayoutManager mLinearLayoutManager = new LinearLayoutManager(this);
 StaggeredGridLayoutManager mGridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL); // 2 is number of items per row
 recyclerView.setLayoutManager(mLinearLayoutManager); // deafult

当你想改变时:

recyclerView.setLayoutManager(mLinearLayoutManager);
OR
recyclerView.setLayoutManager(mGridLayoutManager);