簡體   English   中英

如何正確膨脹以尊重視圖層次?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM