[英]change fragment(?) layout or activity using a navigation drawer
我正在嘗試使用新的導航抽屜 。 我按照指南進行了操作,並設法使用章節名稱標題更改所選項目等等。 現在我被卡住了,因為我不知道如何歸檔我接下來要做的事情。
當我在抽屜里點擊一個項目- 家 ,例如-I希望它把我帶到一個屏幕,我有我的具體畫面的特定布局創建的所有東西。 它是像TextViews
和圖像一樣的靜態東西,所以我不需要對它們做任何事情。
我應該為抽屜的ListView
上的每個項目創建activity
和布局,並且(不知道如何)在onItemSelected()
啟動活動? 或者我可以在每次單擊ListView
的項目時動作創建片段,並說出類似的內容
if(homeClicked){ //use home.xml as layout }
if(contactClicked){ //use contact.xml as layout }
編輯
作為測試,我在onItemClick()
放入了一個傳入單擊數組位置的方法。 作為測試,我剛剛使用如下:
if(position==2) { // this is "contact" in the list layout
setContentView(R.layout.contacts);
}
它確實有效,但顯然我失去了抽屜,因為聯系人布局的東西沒有嵌套在DrawerLayout
。 是否有更優雅的方式來實現我的目標,而不是使用位置switch
並使用setContentView()
,修改任何布局嵌套在DrawerLayout
? (我甚至不知道它是否可能 - 可能不是,因為有相同的ID)
@Stefan對此進行了編輯,因為評論回復中沒有足夠的空間
謝謝Stefan,谷歌的例子讓我更加困惑。 我敢肯定,有一些關於片段的偷偷摸摸的東西,我可能已經閱讀了10k次,但我的大腦拒絕同化。 據我所知,在谷歌的例子中,當你單擊抽屜中的一個項目時,它會創建一個新的片段並使這個片段替換除了MainActivity
的xml布局中抽屜的ListView
之外的唯一內容,這是一個FrameLayout
,占據屏幕的所有空間。 然后所有片段都會顯示一個行星ImageView
因此代碼會根據項目點擊的ListView
數組位置對片段進行更改。
Oke,這里有許多初學者問題,還有一個非常新的和尚未定義的問題。
首先,你只需要做一個新的活動;
this.startActivity(new Intent(this, ActivityClassName.class));
從任何Activity(或片段,有點改為'this'='this.getActivity()')
無論您是使用活動還是片段,您都必須創建一個類和一個所屬的xml視圖。 你可以建立一些通用的東西,但大多數時候你不想這樣做。
關於如果你應該啟動一個新的活動,或者在點擊抽屜后切換片段的問題,我會說這仍然很難說。
一般來說,開始一個新的活動是最容易和最“應該”的。 因為活動應該等於可見的屏幕,可能有多個部分(可能是片段)。
然而,在實踐中,您會看到越來越多的Google應用程序(Google音樂,Play商店,新版Gmail ......)似乎放棄了這個想法並使用1個僅會不斷切換片段的活動。
從技術上講,這種將Activity放在應用程序中的角色,這會帶來額外的困難。 然而,在視覺上,過渡更平滑,因為,例如,動作欄保持不變,就像谷歌更喜歡它的“錨”。
然而,似乎他們正在他們的教程中切換片段而不是啟動活動,所以也許你應該嘗試這種方式並處於“新的做事方式”的最前沿:)
http://developer.android.com/training/implementing-navigation/nav-drawer.html
真的很困惑,我很確定Android工程師在這里錯過了什么!
例如,在iOS上,您可以在Windows上輕松擁有多個“UIViewController”,並為您的所有應用程序提供相同的菜單(或UITabViewController)。 這是一個正常的行為,沒有關於stackoverflow ^^的231個問題
但是在Android上,我看到沒有人有一個干凈的解決方案來使用NavDrawer或Tab with Activies ;-(
我將選擇單個活動和幾個片段方法,讓我們看看!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.