我在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>
這是官方網站的一個簡單示例。
主要內容視圖(上面的的FrameLayout)必須在第一子 在DrawerLayout因爲XML順序意味着z排序和 抽屜必須在內容的頂部。
在這個例子中有兩個嵌套的觀點:如前面提到的,用於存儲主要內容和ListView
用於表示NavigationDrawer
菜單FrameLayout
。
因此,這裏是我的問題。
- 真正的應用程序在整個活動中只有一個視圖。大部分活動有很多不同的視圖,並且有幾個片段可以使UI更加快速響應併爲用戶提供更好的用戶體驗。我的活動當然是不同的意見和片段(相同活動的目的是什麼?:))。一個活動只有一個片段,另外有幾個片段,所以他們都是不同的... 在上面的代碼示例中只有一個
FrameLayout
容器保持片段只有一段,我有什麼做的,如果我的活動有兩個,三或更多的片段?這種情況下最好的解決方案是什麼? - 正如我描述了我的應用程序具有多種活性,因此我的導航抽屜必須(根據Android的UI規範)上的每個活動讓用戶導航到應用的頂層元素。在這種情況下,最好有一個
BaseActivity
(我在這裏閱讀stackoverflow的答案),它將保存所有配置的東西爲NavigationDrawer
。但就導航抽屜需要DrawerLayout
的XML佈局活動而言,BaseActivity
應該調用setContentView
方法。而且所有從BaseActivity
繼承的活動都應該做一些技巧來設置自己的佈局,否則重寫此方法沒有意義,因爲它會打破所有邏輯。在這種情況下做什麼? - 什麼是最有效的方式來建立像谷歌+或YouTube自定義導航抽屜式列表,而無需使用複雜視圖層次結構,這使得GPU努力工作,能夠帶來用戶不愉快的經歷
對於第二個問題,我有一些想法我怎麼能解決這個問題,但不知道它是正確的方式,什麼方法更好。
第一個想法是實現TemplateMethod模式。在BaseActivity
中創建類似setupCustomViewGroup()
的方法,並在所有活動中重寫它,從xml中充滿所需的視圖組,並從此方法返回它並將其用於膨脹整個視圖。
或明確添加視圖到活動中,使用合併和包括標籤。
,但這又只能爲整個活動或一個片段,做什麼,如果我們有更多的碎片,使用嵌套的片段是有幫助的,我認爲這是壞主意。
此外,我的目標是優化視圖層次結構,使其快速高效,即使在舊設備上也能保持平滑。
對於任何能夠描述或建議最有效且正確的方式來使UI響應和代碼可讀的人,我將非常感謝。
謝謝。