Android: 2 ListViews внутри ящика навигации [дубликат]

Я предпочитаю использовать функцию forEach, которая имеет собственное закрытие с созданием псевдодиапазона:

var funcs = [];

new Array(3).fill(0).forEach(function (_, i) { // creating a range
    funcs[i] = function() {            
        // now i is safely incapsulated 
        console.log("My value: " + i);
    };
});

for (var j = 0; j < 3; j++) {
    funcs[j](); // 0, 1, 2
}

Это выглядит более уродливым, чем диапазоны на других языках, но IMHO менее чудовищным, чем другие решения.

1
задан Alyoshak 10 June 2016 в 23:07
поделиться

1 ответ

Не то, чтобы ваш ящик открывался автоматически. Это значит, что DrawerLayout не находит View для использования в качестве ящика, поэтому оба его прямого дочернего View s заполняют его. LinearLayout, предназначенный для того, чтобы быть выдвижным ящиком, который был указан последним, охватывает содержимое View, поэтому просто появляется, что ящик открыт.

DrawerLayout определяет, какие View s использовать как ящики, просматривая его прямые дети для тех, у кого есть горизонтальная настройка layout_gravity; то есть left / right или start / end. Вы хотите, чтобы этот атрибут был установлен на LinearLayout, так как теперь он действует как ящик. В своем основном макете просто переместите android:layout_gravity="left" с ListView на LinearLayout.

1
ответ дан Mike M. 5 September 2018 в 11:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: