Расположение Android, центрирующееся в RelativeLayout для пользовательского ListView

Я использовал Syncfusion компоненты, и они довольно хороши, они имеют "подобного Excel" редактора, хотя я не видел упомянутую мультилинию.

15
задан MattC 30 September 2009 в 17:28
поделиться

3 ответа

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

Процитирую вездесущего Ромена Гая :

правильное использование inflate () в адаптеров:

inflate (layoutId, parent, false);

Передача родительского элемента (передается вам как параметр в getView ()) позволяет пользовательскому интерфейсу инструментарий для создания соответствующих LayoutParams объект. Передает ложь сообщает инструментарию НЕ вызывать parent.addView (theInflateChild), поскольку ListView сделает свое волшебство позже on.

Если вы используете inflate (layoutId, null) , как я традиционно советую, жизнь в порядке, если вы не попытаетесь использовать RelativeLayout в качестве базового макета строк и попробуйте использовать вертикальное центрирование.

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

24
ответ дан 30 November 2019 в 23:47
поделиться

Here is a layout that ended up doing exactly what I wanted. I ditched RelativeLayout once I learned that it ignores layout_gravity attributes (of course now I can't find the post). Either way, nested LinearLayouts did the trick for me:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:id="@+id/llBlahBlahRowMain"
    android:padding="6dip">
    <CheckBox android:text="" 
              android:id="@+id/cbDeleteItem" 
              android:layout_width="wrap_content" 
              android:layout_height="wrap_content"
              android:layout_gravity="center_vertical"
              android:focusable="false"
              />
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_weight="1"
        android:layout_gravity="center_vertical"
        android:layout_height="wrap_content">
         <TextView 
            android:text="blah blah dynamically replaced text" 
            android:id="@+id/tvItemText" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:layout_weight="1"
            android:textSize="14dip"
            android:paddingLeft="3dip"
            android:layout_gravity="center_vertical"
            />
    </LinearLayout>
    <Button android:layout_width="wrap_content"
          android:layout_height="wrap_content" 
          android:id="@+id/btnDelete" 
          android:text="Delete" 
          android:layout_gravity="center_vertical" 
          android:focusable="false"
          />
</LinearLayout>
2
ответ дан 30 November 2019 в 23:47
поделиться

Вы пробовали android: gravity = "center_horizontal", как указано здесь

1
ответ дан 30 November 2019 в 23:47
поделиться
Другие вопросы по тегам:

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