Intereting Posts
Использование AsyncTask для отправки электронной почты Android Навигационный ящик google maps v2, блок блокировки карты Забыл пароль Keystore, думая об обнаружении Brute-Force. Это повредит хранилище ключей? Как открыть URL-адреса, PDF-файлы и т. Д. С помощью приложений по умолчанию? Различные варианты на основе варианта сборки в Gradle Не удалось установить Intel HAXM Обрабатывать несколько уведомлений / Укладку уведомлений от GCM Почему эта активность не заканчивается? Как изменить цвет изображения растрового изображения в андроиде? Объем внутренней памяти эмулятора автоматически изменяется на 384 МБ ActionBarSherlock spinner не выбирается. ActionBar – связанный с темой Образ изображения хвоста Skobbler неправильно отображен Android SDK 2.5.1 Android: использование селектора для установки цвета фона для просмотра изображения Как правильно использовать setProgressDrawable ()? Использование dispatchDraw (холст холста)

Android Listview с разным расположением для каждой строки?

Я хочу создать Listview, в котором я хочу разный макет для всех разных строк. Затем как я могу создать пользовательский адаптер для установки разного макета для разных строк.

Любая помощь будет принята с благодарностью.

Заранее спасибо.

Solutions Collecting From Web of "Android Listview с разным расположением для каждой строки?"

Вам необходимо расширить свой Adapter и переопределить его метод getView .

 @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); int resource; // Here you set 'resource' with the correct layout, for the row // given by the parameter 'position.' // // Eg: // // switch (someArray[position].type) { // case SOME_TYPE_A: resource = R.layout.a; break; // case SOME_TYPE_B: resource = R.layout.b; break; // ... // } View rowView = inflater.inflate(resource, parent, false); // Here you initialize the contents of the newly created view. // // Eg: // switch (resource) { // case R.layout.a: // TextView aA = (TextView) rowView.findViewById(R.id.aa); // aA.setText("View 1"); // ... // break; // case R.layout.b: // TextView bB = (TextView) rowView.findViewById(R.id.bb); // bB.setText("View 2"); // ... // break; // ... // } return rowView; } 

Дополнительные примеры адаптеров и способы их расширения см. В приведенных ниже ссылках.

Создать обычный адаптер, в функции create_view раздуйте раскладку xml в соответствии с типом строки.

например

 @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); if (position % 2 == 0 ) xml_type = R.layout.row_one else xml_type = R.layout.row_two View rowView = inflater.inflate(xml_type, parent, false); }