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