Android ListView, который не прокручивает?

Я пытаюсь сделать расположение, которое является чем-то подобным тому, как Android Market..., где говорят в соответствии с комментариями существует то, что, кажется, a ListView но это не прокручивает (целая прокрутка страницы, но не комментарии). Я не уверен, хочу ли даже ListView, но я что-то, что похоже на представление списка (т.е. имейте те панели делителя и что не, но НЕ С ВОЗМОЖНОСТЬЮ ПРОКРУТКИ). Существуют люди, предлагающие использовать a LinearLayout вместо a ListView но я также хочу, чтобы объекты были активируемы по щелчку и открыли новое действие. Помогите?

Мое дерево текущего макета похоже так

<LinearLayout>
  <ScrollView>
     <RelativeLayout>

Я надеюсь вставлять, удовлетворяют RelativeLayout.

16
задан Janusz 27 January 2012 в 12:19
поделиться

2 ответа

Как объяснили программисты, которые делали listView в этом видео от GoogleIo, никогда не помещали ListView внутрь прокручиваемого представления. Если ваш список не должен прокручиваться, используйте ViewGroup как линейный макет и добавьте все элементы в эту ViewGroup в цикле вашего кода. Если вы хотите, чтобы вся строка была интерактивной, вы должны использовать другую ViewGroup в качестве корневого узла для каждой строки и добавить OnClickListener в это представление.

Пример кода:

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

for (int current = 0; current < itemCount; current++) {
   View view = inflater.inflate(R.layout.layout_id, parent, false);

   //initialize the view

   view.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {
          Intent intent = new Intent(getApplicationContext(), CLASS_TO_START)
          startActivity(intent);
      }
   });
   viewGroup.addView(view);
   if (current < itemCount - 1) {
      inflater.inflate(R.layout.line, viewGroup);
   }
}

Этот код будет генерировать одно представление для каждого элемента, который у вас есть, и помещать его в viewGroup. После каждого элемента, кроме последнего, он также добавит разделитель в viewGroup.

28
ответ дан 30 November 2019 в 16:00
поделиться

Вы можете создать один ListView и поместить в него все, чтобы вся страница прокручивалась. Вы можете развернуть свою собственную реализацию адаптера, но я рекомендую использовать отличный MergeAdapter CommonsWare. Вы можете добавить метки или разделительные полосы с помощью addView () , а списки - с помощью addAdapter () . Посетите страницу для получения дополнительной информации об использовании и демонстрационном проекте.

0
ответ дан 30 November 2019 в 16:00
поделиться
Другие вопросы по тегам:

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