2016-10-08 2 views
0

У меня есть случай, когда я хотел бы динамически заполнять макет с представлением, установленным в соответствии с родителем при равном весе, горизонтально.Динамически заполненный макет андроида с элементами

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

Но если количество элементов всегда должно быть равномерно распределено с корневой компоновкой.

Каждый отдельный элемент представляет собой макет, содержащий флажок и текстовое представление.

Я не уверен, что этот случай подходит для ListView, или если он предназначен только для элементов фиксированного размера, который может превышать границы родителя.

Это правильный способ сделать это, создать и xml-макет для одного элемента, а затем динамически раздуть количество этих макетов в родительский макет?

ответ

0

У вас есть несколько вариантов.

Если вы уверены, что все элементы всегда будут соответствовать, то просто используйте listview. Это даст вам преимущества вида адаптера.

отключить скроллбар с

android:scrollbars="none" 

вы можете даже, если необходимо отключить скроллинг путем расширения ListView и добавления

@Override 
public boolean dispatchTouchEvent(MotionEvent ev){ 
    if(ev.getAction()==MotionEvent.ACTION_MOVE) 
     return true; 
    return super.dispatchTouchEvent(ev); 
} 

Или вы можете просто использовать LinearLayout и добавить взгляды программно с помощью

LinearLayout layout = (LinearLayout) findViewById(R.id.layout); 
layout.addView(newView, index); 

Но я бы, вероятно, просто использовал ListView или RecyclerView и пусть он ведет себя нормально. Это будет охватывать вас для тех, кто использует очень маленькое устройство.

+0

Если я использую listview, он будет равномерно размещать элементы, чтобы они использовали всю комнату равномерно? – ScottF

+0

ах, используйте linearlayout с весами. если вы установите layout_width в 0dp и установите layout_weight для каждого из элементов в 1, доступная ширина будет разделяться поровну между элементами. –

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