2014-01-10 5 views
0

Я пытаюсь создать представление вложенного списка для приложения для Android. То, что я essentiall хочу некоторые вещи, какПолностью расширенные вложенные списки - Android

     nested list entry 1 
Outer List Entry1 nested list entry 2 
        nested list entry 3 

         nested list entry 1 
Outer List Entry 2 nested list entry 2 
         nested list entry 3 

Где у меня есть внешний список, который имеет две записи, а затем иметь вложенное представление списка, который содержит подробные записи (если вы представить себе календарь, который имеет дни недели как внешний список, и с каждым днем ​​есть список из 0 или более назначений, перечисленных вертикально, как указано выше). Кроме того, я хочу, чтобы вложенные элементы списка были кликибельными/выделенными так же, как и список верхнего уровня.

Основная информация Я ищу поиск вложенных просмотров списка - это предложения по использованию ExpandableListViews - Который я реализовал, но кажется немного уродливым, чтобы использовать это, поскольку его явно не та же самая цель (я не хочу ничего расширяемого - все должно быть всегда быть полностью расширенным и не складывающимся - также не могли найти информацию о выкладке по горизонтали, как выше, а не по вертикали, - но я предполагаю, что это возможно относительно легко?).

Я также использовал выбранный здесь ответ: android nested listview, который работает нормально с точки зрения презентации, но не предлагает такого же поведения прокрутки списка/выделения/клика для каждого отдельного элемента во вложенном списке.

Может ли кто-нибудь предложить какие-либо альтернативы? когда-либо реализовал аналогичный макет с любым из вышеперечисленных?


UPDATE

Я хочу, чтобы расположение списков на самом деле быть как выше текстовое представление - в попытке прояснить макет я хочу, здесь есть образ (да, я знаю, вероятно, следует downvoted для хромого скриншоте диаграммы в открытом офисе :)

enter image description here

Таким образом, вы можете видеть, я на самом деле хочу экрана, чтобы выглядеть - родитель/внешний список являющийся списком периодов времени (в этом случае его дни недели, но это могут быть часы дня и т. д.), и для каждой строки в этом внешнем списке я хочу, чтобы появился внутренний список (назначения для данного заданного временного интервала) как вложенный список, выровненный по горизонтали к родительскому.

ответ

1

Обновленный ответ: Если вам нужна таблица, вам следует, вероятно, разделить ее на фрагменты. Корневой вид должен быть ScrollView. Ребенок должен быть горизонтальным LinearLayout Каждая следующая колонка - это фрагмент. Каждый контейнер с фрагментами должен иметь некоторый вес. . Корневой вид каждого фрагмента должен быть вертикальным. LinearLayout Убедитесь, что элемент Frament with days имеет высоту ровно три высоты «заданий». Жесткий код в dimen.xml. Для удобства сделайте каждый расширенный класс LinearLayout Fragment, который может иметь набор ListAdapter. Заполните каждую строку на основе ListAdapter. Таким образом, вы можете получить список с фиксированным контентом.

Или вы можете обойтись без фрагментов, если вы не хотите быть гибкими. Добавление нового столбца будет просто вопросом фрагментов, которые инкапсулируют логику.

+0

Спасибо - Пока я не пропустил что-то, я не уверен, что это именно то, что я хочу, - его не то, что я хочу один список с различными раскладками для разных строк , тем более, что в каждой строке моего основного списка я хочу иметь другой вложенный список других деталей. – rhinds

+0

@ rhinds хорошо, вы можете достичь вида расширяемого ListView с использованием разных макетов. «Заголовок» и ниже каждого «заголовка» подписок. Или, может быть, я не понимаю, чего вы пытаетесь достичь. Вы хотите, чтобы он выглядел горизонтально, как в вопросе? Или это просто показать, как организованы категории? –

+0

Итак, я обновил исходный вопрос - да, я хотел, чтобы на самом деле макет соответствовал оригинальной иллюстрации, но я добавил хромовый снимок экрана, чтобы попытаться проиллюстрировать его дальше - я бы предположил, что это не особенно уникальный макет? – rhinds

1

Чтобы ExpandableListView не разрушится, используйте

expandableList.setOnGroupClickListener(new OnGroupClickListener() { 
    @Override 
    public boolean onGroupClick(ExpandableListView parent, View v, 
           int groupPosition, long id) { 
    return true; // This way the expander cannot be collapsed 
    } 
}); 
+0

Спасибо - это полезно знать - 2 follow ups: 1) Могу ли я настроить макет, чтобы расширяемый список отображался по горизонтали в соответствии с моим сообщением? 2) Считаете ли вы, что это разумное использование расширяемого списка? было бы плохой практикой (или ужасным взломом)? Это не совсем необычный макет, поэтому я предполагаю, что он, должно быть, был разрешен много раз. – rhinds

+0

ОК, так что нижняя строка я понимаю, вы хотите, чтобы просмотр прокручивался по горизонтали, вы пробовали 'HorizontalScrollView' –

+0

Почему я бы уговорил вас пойти на' HorizontalScrollView' будет потому, что 'ExpandableListView' не имеет свойства' android: orientation', см. здесь для себя => http://developer.android.com/reference/android/widget/ExpandableListView.html –

Смежные вопросы