我的应用程序中有一个主 – 细节模式,但我希望细节能够切换视图.我想尽可能多地节省空间,这样“内容”既美观又宽敞.如何从一个“细节”导航到另一个“细节”,同时使用“向上”按钮返回“主”列表? (请参阅我的照片上“细节1”和“细节2”之间的箭头.)
我花了很多时间思考这个并研究各种方法,甚至问了一个堆栈溢出问题(How to do something like Drop Down Navigation in Android (since it looks like it has become deprecated?)),我还在等待一个有用的答案.即使我回答了这个问题,我也不确定它是否真的能与这样的Master Detail流程一起使用.
如果Master-Detail不起作用,那么实现这种UI布局的最佳方法是什么?以前有人做过这样的事吗?谢谢!
编辑:理想情况下,我还希望用户能够设置“默认”视图(详细信息1或详细信息2),这将是单击主列表上的项目后出现的第一个屏幕.
编辑2:我有一个想法,使用ViewPager在细节1和细节2之间转换.我不确定它是否会起作用.或者,我可以将详细信息2作为详细信息1的附加活动,但我不想为“内容”区域中的按钮腾出空间.我不能真正使用抽屉,因为抽屉图标与“向上”箭头位于同一位置.我不知所措,因为我认为抽屉最适合这种情况,但我不能使用它,因为我已经使用了“向上”箭头.
编辑3:我试着想到一个应用程序做了我正在尝试做的事情,我认为“Kindle”做得很好.它必须在书的每一页之间切换,但首先你必须选择一本书.当你在一本关于Kindle的书中,Action Bar&导航抽屉变为白色,导航抽屉的第一个项目为“库”.单击“库”可以使用黑色操作栏和带有不同菜单项的黑色导航抽屉,进行完全不同的活动.所以,我认为这可能是我应该采取的路线.我可能不再有“向上”按钮,只需使用抽屉的第一项作为“向上”按钮.不过,我仍然有兴趣学习和考虑我的所有选择.
将所有细节视图放在一个layout.xml中,并在单击按钮时通过View.setVisibility()切换其可见性.您可以将此按钮标记为“继续”,“下一步”或其他任何内容.主要思想是让用户意识到尽管屏幕发生了变化,他们仍处于相同的环境中.
以下是如何安排详细信息layout.xml的说明:
正如我所说,我们的想法是在点击bt_continue后切换layout_page_1和layout_page_2的可见性:
@Override
public void onClick(View v) {
if(v.getId() == R.id.bt_continue) {
layoutPage1.setVisibility(View.INVISIBLE);
layoutPage2.setVisibility(View.GONE);
}
}
使用此逻辑,您还可以实现“上一步”按钮以导航回详细信息的第一页.
如果您希望用户能够设置默认视图,那么这也很容易.只需在您的SharedPreferences中保存一个int,它将代表将被“打开”的页面 – 即将设置为View.VISIBLE的视图 – 用户第一次打开详细视图时.