[英]How to inflate correctly to respect view hierarchy?
我正在嘗試使DrawerLayout被另一個布局充實,該布局的功能是在屏幕底部表示一個微型媒體播放器。7
主要布局是抽屜布局。 我想添加的布局(我給主布局充氣的布局)是相對布局。
當我打開抽屜並嘗試選擇內部提到的一些方法時,一旦我給DrawerLayout(主布局)充氣,它們就不會被觸發。
如果我沒有給抽屜充氣,我點擊抽屜里的一些菜單項,方法會正確觸發。
我猜它是我膨脹的方式,一旦抽屜被打開,我試圖在膨脹的視圖上使用VIEW.GONE,但方法仍然是假的。
我如何調用方法:
switch (menuItem.getItemId()) {
case R.id.nav_home: {
if (checkInternetConnection(getApplicationContext())) {
Log.i(LOG_TAG, "PROVJERA NETA POVEZAN");
start_loader();
} else {
mEmptyStateTextView.setText("Cannot connect to network, please check your network status and try again.");
// Clear the adapter of previous earthquake data
}
break;
}
case R.id.nav_history: {
//pozoviHistory(null);
break;
}
case R.id.nav_favourite: {
Log.i(LOG_TAG, "ZOVI HFAV");
pozoviFavorites();
break;
}
}
這就是我如何誇大布局:
DrawerLayout myLayout = (DrawerLayout) findViewById(R.id.cili_test);
View itemInfo1 = getLayoutInflater().inflate(R.layout.player2, myLayout, true);
有任何想法嗎?
從你的帖子中不清楚你的DrawerLayout
布局。你說如果你沒有給抽屜充氣,你仍然可以點擊它的菜單項,這是不可能的 - 視圖需要膨脹才能顯示。
我假設DrawerLayout
在你的活動/片段布局中,因為你使用findViewById
來獲取它的引用意味着一旦你調用setContentView
(或Fragment
的等價物)它就已經膨脹了。
player2
布局是什么樣的? 當它膨脹並添加到DrawerLayout
它會顯示在其他視圖之上。 它是否占用了抽屜項目的空間,因此單擊事件不會傳播到這些項目?
帖子中的更多代碼將有助於發現問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.