5 android ui-patterns android-layout android-fragments navigation-drawer
我在Android UI开发方面相对较新.所以我需要更有经验的开发人员的帮助.
我正在创建我的应用程序Navigation Drawer,我遇到了很多问题.
首先,这是导航抽屉的示例代码.
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The main content view -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- The navigation drawer -->
<ListView android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#111"/>
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)
这是官方网站的简单示例.
主内容视图(上面的FrameLayout)必须是DrawerLayout中的第一个子节点,因为XML顺序意味着z-ordering,抽屉必须位于内容之上.
在此示例中,有两个嵌套视图:FrameLayout如前所述,用于存储主内容和ListView表示NavigationDrawer菜单.
所以这是我的问题.
FrameLayout容器可以容纳Fragment ONLY ONE片段,如果我的Activity有两个,三个或更多,我必须做什么片段?在这种情况下,最佳解决方案是什么.BaseActivity(我已经在stackoverflow上阅读了答案),它将保存所有配置的东西NavigationDrawer.但就导航抽屉需要DrawerLayout在XML布局中的活动而言,BaseActivity应该调用setContentView方法.并且从BaseActivity活动继承的所有内容都应该做一些设置自己布局的技巧,否则覆盖这个方法没有意义,因为它会打破所有逻辑.在这种情况下该怎么办?对于第二个问题,我有一些想法如何解决这个问题,但不知道它是正确的方法,哪种方法更好.
第一个想法是实现TemplateMethod模式.在BaseActivity类似的东西中创建方法setupCustomViewGroup()并在所有活动中覆盖它从xml中膨胀所需的视图组并从此方法返回它,而不是在膨胀整个视图中使用它.
或者明确地向Activity添加视图,使用merge和include标记.
但同样,这只对整个活动或一个片段有用,如果我们有更多片段,使用嵌套片段怎么办,我认为这是个坏主意.
此外,我的目标是优化视图层次结构,使其快速高效,以便在旧设备上实现平滑.
对于能够描述或建议在这种情况下遵循最有效和正确的方法来使UI响应和代码可读的人,我将非常感激.
谢谢.
| 归档时间: |
|
| 查看次数: |
950 次 |
| 最近记录: |