Как правильно раздувать, уважать иерархию представлений? - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь создать DrawerLayout, который надувается другим макетом, функция которого заключается в представлении мини-медиаплеера внизу экрана.7

Основным макетом является Drawer Layout.Макет, который я хочу добавить (тот, который я надуваю основной макет) - это «Относительный макет».

Как только я раздуваю 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);

Есть идеи?

1 Ответ

0 голосов
/ 18 марта 2019

Из вашего поста непонятно, в каком макете находится ваш DrawerLayout. Вы говорите, что если вы не раздуете ящик, вы все равно можете нажать на его пункты меню, что невозможно - для этого нужно раздуть представление.

Я предполагаю, что DrawerLayout находится в макете вашей деятельности / фрагмента, так как вы используете findViewById, чтобы получить ссылку на него, что означает, что он уже раздут, когда вы вызываете setContentView (или эквивалент в Fragment).


Как выглядит макет player2?Когда он надувается и добавляется к DrawerLayout, он отображается поверх других представлений.Занимает ли пространство над элементами вашего ящика, чтобы события щелчка не распространялись на элементы?

Дополнительный код в вашем сообщении поможет найти проблему.

...