Roc*_*Lee 5 user-interface android master-detail
我的应用程序中有一个主 - 细节模式,但我希望细节能够切换视图.我想尽可能多地节省空间,这样"内容"既美观又宽敞.如何从一个"细节"导航到另一个"细节",同时使用"向上"按钮返回"主"列表?(请参阅我的照片上"细节1"和"细节2"之间的箭头.)

我花了很多时间思考这个并研究各种方法,甚至还问了一个堆栈溢出问题(如何在Android中执行类似下拉导航的事情(因为它看起来已被弃用?))和我还在等待一个有用的答案.即使我回答了这个问题,我也不确定它是否真的能与这样的Master Detail流程一起使用.
如果Master-Detail不起作用,那么实现这种UI布局的最佳方法是什么?以前有人做过这样的事吗?谢谢!
编辑:理想情况下,我还希望用户能够设置"默认"视图(详细信息1或详细信息2),这将是单击主列表上的项目后出现的第一个屏幕.
编辑2:我有一个想法,使用ViewPager在细节1和细节2之间转换.我不确定它是否会起作用.或者,我可以将详细信息2作为详细信息1的附加活动,但我不想为"内容"区域中的按钮腾出空间.我不能真正使用抽屉,因为抽屉图标与"向上"箭头位于同一位置.我不知所措,因为我认为抽屉最适合这种情况,但我不能使用它,因为我已经使用了"向上"箭头.
编辑3:我试着想到一个应用程序做了我正在尝试做的事情,我认为"Kindle"做得很好.它必须在书的每一页之间切换,但首先你必须选择一本书.当你在一本关于Kindle的书中时,Action Bar&Navigation Drawer变为白色,而Navigation Drawer的第一个项目是"Library".单击"库"可以使用黑色操作栏和带有不同菜单项的黑色导航抽屉,进行完全不同的活动.所以,我认为这可能是我应该采取的路线.我可能不再有"向上"按钮,只需使用抽屉的第一项作为"向上"按钮.不过,我仍然有兴趣学习和考虑我的所有选择.
这是使用Fragments 和 的替代方法ViewPager(因为它们通常可以以更多样板代码结尾)。
将所有详细信息视图集中在一起,然后单击按钮即可layout.xml切换其可见性。View.setVisibility()您可以将此按钮标记为“继续”、“下一步”或其他任何名称。主要思想是让用户意识到,尽管屏幕发生变化,他们仍处于相同的上下文中。
以下是有关如何安排详细信息的说明layout.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/layout_page_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible">
<!-- Put your detail 1 content here -->
</LinearLayout>
<LinearLayout
android:id="@+id/layout_page_2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
<!-- Put your detail 2 content here -->
</LinearLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Continue"
android:id="@+id/bt_continue"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
正如我所说,这个想法是在点击时切换layout_page_1和的可见性:layout_page_2bt_continue
@Override
public void onClick(View v) {
if(v.getId() == R.id.bt_continue) {
layoutPage1.setVisibility(View.INVISIBLE);
layoutPage2.setVisibility(View.GONE);
}
}
Run Code Online (Sandbox Code Playgroud)
通过此逻辑,您还可以实现“上一页”按钮以导航回详细信息的第一页。
如果您希望用户能够设置默认视图,那么这也很容易。int只需在您的中保存一个SharedPreferences,它将代表将“打开”的页面 - 即View.VISIBLE用户第一次打开详细视图时将设置的视图。
| 归档时间: |
|
| 查看次数: |
624 次 |
| 最近记录: |