2015-08-21 3 views
0

У меня есть ListView, который содержит пользовательский макет.Установить пользовательский макет внутри ListView как прокручиваемый в android

Каждая строка списка View выглядят следующим образом:

enter image description here

Строка содержит 2 LinearLayouts, один для даты и один для деталей Прогресс. Макет подробных сведений о ходе выполнения от 2 TextViews (Заголовок и данные ниже) и 1 Button (Подробнее).

Когда пользователь нажимает кнопку «View More», данные под заголовком расширяются до 10-12 строк.

Моя проблема в том, что когда TextView расширяется, на краю выходит scrollbar, и пользователь должен прокручивать, чтобы читать. Ширина строки не изменяется, так как строка не расширяется.

Я хочу, чтобы ширина строки расширялась, чтобы пользователю не пришлось прокручивать текст.

Я много читал и уже пробовали следующие варианты, но они не работали

1. android:scrollbar="none" 
2. View.setOverScrollMode(View.OVER_SCROLL_NEVER); 
3. View.setScrollContainer(false); 

Пожалуйста, помогите мне с этим.

+0

Почему бы вам не использовать ** Расширяемый список просмотров ** – Pankaj

ответ

0

Используйте расширяемой List View таким образом, что нормальный вид вашего списка будет иметь изображение, которое вы предоставили, и при нажатии этого просмотра оно будет раскрываться, чтобы показать детали, которые вы хотите показать, нажав кнопку view more (на вашем изображении).

Тут link для получения дополнительной информации Информация.

+0

Не могли бы вы добавить немного больше к этому ответу? Что-то, что поможет другим, кто попадает на этот пост, будет идеальным. –

+0

Спасибо, ссылка очень полезна – Aradhna

+0

Счастливые помочь. Примите ответ. :) – bhakti123

1

Вы должны использовать exapanding ListView анимации для этого вы можете использовать этот LIB для этого https://github.com/nhaarman/ListViewAnimations

+0

Можете ли вы привести пример того, как с этим работать? – Aradhna

+0

В этом проекте уже есть примеры https://play.google.com/store/apps/details?id=com.haarman.listviewanimations –

+0

Он показывает только результат, а не пример кода о том, как его использовать. – Aradhna

0

Try использовать LayoutParams и изменить высоту внутри программно слушателя для вас Баттона.

LayoutParams должен основываться на типе макета, содержащем ваш LinearLayout. Если, например, это RelativeLayout, это будет выглядеть примерно так:

int heightForRow = 100; 
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 
params.height = heightForRow; 
yourLinearLayout.setLayoutParams(params); 

Пожалуйста, обратите внимание, что ваш LinearLayout должен затем быть внутри другого макета (RelativeLayout в примере)

+0

Высота строки динамическая. Я не могу установить его на фиксированное значение. – Aradhna

+0

Я вижу. Может быть, есть способ получить высоту, которую TextView хотел бы получить через метод getMeasuredHeight() и установить это значение в heightForRow? Не уверен, что это сработает, но, может быть, вы сможете попробовать. Надеюсь, это поможет – Kaixin

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