2014-11-21 103 views
0

我正在嘗試將導航抽屜實施到受Material Design影響的應用中(Appcompat v21)。導航抽屜無法正常工作 - 總是全屏

所以我剛剛創造了基本的XML文件:

enter image description here

你可能在一個位放大到能夠告訴我所做的事情有:

  1. 根查看是android.support.v4.widget.DrawerLayout本身
  2. 第一個孩子是主要內容,這裏作爲一個簡單的LinearLayout
  3. 第二個chil d - 抽屜本身 - 是一個簡單的listview,寬240dp。

正如你可能看到的,背景應該是粉紅色的,因爲我告訴主要內容視圖是這樣的。列表視圖應該是藍色的。現在,您可以在預覽窗口的右側看到整個屏幕變成藍色,而不是隻有listView。

我的問題在哪裏?我告訴列表視圖只有240dp寬,不符合父母。 如果我嘗試運行應用程序,抽屜永遠不會「關閉」,這意味着該列表僅位於主內容視圖的頂部。

看起來程序並不知道DrawerLayout是什麼,只是在主內容佈局上繪製內容。

我不明白爲什麼這次不行。

有什麼建議嗎?

編輯: 測試活動:

public class TestActivity extends Activity { 

DrawerLayout drawerLayout; 
ListView listView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_test); 

    drawerLayout = (DrawerLayout)findViewById(R.id.test_drawer_layout); 
    listView = (ListView)findViewById(R.id.test_left_drawer); 

} 
} 
+0

當你使用FrameLayout而不是LinearLayout時,你有同樣的事情嗎? – Rami 2014-11-21 21:17:16

+0

剛剛測試過它:是的,我使用FrameLayout也有同樣的問題。也許值得一提的是,我禁用了主題中的'windowActionBar',因爲我正在使用工具欄。但我認爲這不應該是一個問題 – user2410644 2014-11-21 21:20:38

+0

你可以發佈活動代碼嗎? – Rami 2014-11-21 21:27:56

回答

1

待所示的抽屜內的視圖(在這種情況下,ListView)必須具有android:layout_gravity="start"屬性集。

documentation

抽屜定位和佈局上使用與您想要的抽屜,從出現的視圖,其 側子視圖 android:layout_gravity屬性控制:向左或向右。 (或開始在支持佈局方向平臺的版本/結束。)

要使用DrawerLayout,定位主內容視圖作爲第一 孩子的match_parent的寬度和高度。 在主內容視圖之後添加抽屜兒童 視圖並適當地設置layout_gravity抽屜通常使用match_parent高度,固定寬度爲 。

+0

謝謝,要檢查。我怎麼監督這個......謝謝! – user2410644 2014-11-21 21:41:27