0

Я не могу понять использование android:gravity и setGravity() от GridView.Использование setGravity() в GridView

android:gravity

Определяет тяжести внутри каждой ячейки.

center_horizontal - Место объекта в горизонтальном центре контейнера, не изменяя его размер.

setGravity(int gravity)

Установить гравитацию для этой сетки. Гравитация описывает, как представления ребенка горизонтально выровнены. По умолчанию Gravity.LEFT

гравитация INT: гравитация применять к детям этой сетки в

Я пытаюсь центрирования последнюю строку, как указано в this question, но я не могу возьми.

Итак, я попытался понять использование android:gravity и setGravity().

Я пробовал этот код.

<GridView 
    android:id="@+id/grid_view" 
    android:stretchMode="none" 
    android:numColumns="auto_fit" 
    android:columnWidth="140dp" 
    android:gravity="right" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

его вид ребенка

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="100dp" 
    android:layout_height="wrap_content" 
    android:id="@+id/chapter_item_layout" 
    android:minHeight="120dp" 
    android:background="@color/red"> 

    <ImageView 
     android:id="@+id/thumbnail_image" 
     android:layout_width="68dp" 
     android:layout_height="68dp" 
     android:scaleType="fitXY" 
     android:src="@drawable/icon" /> 

    <TextView 
     android:text="TextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 
     android:textSize="16sp" 
     android:textColor="@color/black" 
     android:maxLines="2" 
     android:ellipsize="end" 
     android:id="@+id/title" /> 

</LinearLayout> 

и его ближайшие, как этот

stretchMode="none"

если изменился stretchMode="columnWidth" и он приходит как этот

stretchMode="columnWidth"

  • Первое изображение, указывающее, что дочерние строки не выравниваются вправо.
  • Второе изображение, обозначающее, что содержимое внутри ребенка не выравнивая право

Тогда что использование установки гравитацию?

Я пробовал gridView.setGravity(Gravity.CENTER).

Мне нужно отобразить динамические элементы в GridView.

Как я могу отобразить 3-й элемент в центре, если у меня есть 3 элемента?

Я попытался установить layout_width="wrap_content" & положить мой GridView внутри

  • LinearLayout и установка layout_gravity:center
  • RelativeLayout и установка layout_centerInParent=true

обоих случаях не работали.

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

Спасибо заранее

ответ

0

положить ваш GridView внутри RelativeLayout, а затем установить «ы layout_centerInParentGridView до true.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <GridView 
      android:id="@+id/grid_view" 
      android:stretchMode="columnWidth" 
      android:numColumns="2" 
      android:columnWidth="140dp" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_centerInParent="true" /> 

</RelativeLayout> 

Потому что:

RelativeLayout дает гораздо больший контроль над позициями детей.

ОБНОВЛЕНИЕ:

Попробуйте изменить два свойства

android:stretchMode="columnWidth" 
android:numColumns="2" 

Удалить это свойство, если добавить в GridViewandroid:gravity="right".

+0

Нет, он не работает, потому что GridView занимает свою ширину как весь экран, поэтому нет смысла делать его центром по отношению к его родительскому объекту, и я попробовал теперь также, как вы сказали, но он не работает –

+0

@VigneshSundar Вы хотите ваш «GridView» в полном размере или нет, поскольку я не понимаю, что вы хотите, пожалуйста, разместите снимок экрана, что вы хотите? – Ironman

+0

Пожалуйста, внимательно прочитайте вопрос и полностью, Я пытаюсь центрировать последнюю строку, как указано в [этот вопрос] (http://stackoverflow.com/questions/19156385/how-to-cenralize-last-uneven-row- in-gridview-in-android), этот вопрос содержит четкие изображения, так как я уже использовал 2 изображения, скопируйте вставки изображений в этом вопросе, сделайте мой вопрос плохим –

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