Пространство галереи в начале и в конце - PullRequest
8 голосов
/ 19 июля 2011

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

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
        <Gallery android:id="@+id/galleryid"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:spacing="0dip"
                android:padding="0dip"
                android:layout_weight="1" />

предметы галереи:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
    android:layout_width="75dip" xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center_horizontal" android:background="#ffffff"> 

    <TextView android:id="@+id/frame_number" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="-" android:textSize="12dip" android:textColor="#ffffff" android:background="#000000" android:gravity="center" />
    <LinearLayout android:id="@+id/LinearLayout01"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" android:orientation="horizontal" android:gravity="center_horizontal">
                <TextView  android:id="@+id/frame_shot1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="-" android:textSize="18dip" android:textColor="#000000" />
                <TextView  android:id="@+id/frame_shot2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="-" android:textSize="18dip" android:textColor="#000000" />
    </LinearLayout> 
    <TextView android:id="@+id/frame_total" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="---" android:textSize="38dip" android:textColor="#000000"/>
</LinearLayout>

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


Edit 08/16 Все еще с той же проблемой в проекте, здесь я оставляю изображение того, что именно я пытаюсь избавить, это черное пространство в начале (также в конце галерея на другой стороне)

enter image description here

Ответы [ 6 ]

2 голосов
/ 27 марта 2012

Попробуйте:

int position=1;

void android.widget.AbsSpinner.setSelection(int position)
2 голосов
/ 29 ноября 2011

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

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

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

(2) Для отображения сплошного цвета или изображения в пустом пространстве я бы предположил установить атрибут android: background галереи.

(3) Создайте буфер в начале и конце вашего адаптера, состоящий из последних / первых элементов соответственно, и, когда пользователь прокручивает буфер достаточно далеко, переходите к соответствующему элементу на другом конце галереи. для бесконечной галереи "карусель".

1 голос
/ 18 ноября 2011

Одна вещь, которую вы можете попробовать, это проверить, есть ли более одного предмета.Если есть, установите выбор в галерее как второй элемент.

0 голосов
/ 24 марта 2013

установить поле для галереи на -(metrics.widthPixels)+itemWidth, пустое место - скрыть.

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
params.setMargins(-(metrics.widthPixels)+itemWidth,0,0,0); 
gallery.setLayoutParams(params);
0 голосов
/ 02 августа 2011

Я только что провел с этой проблемой 2 часа и наконец нашел решение для себя.У меня есть Галерея с пользовательскими элементами LinearLayout.Я хочу отображать только 1 элемент за раз без каких-либо отступов ни в начале, ни в конце.

После многих попыток я обнаружил, что, если установить для каждого элемента minWidth большое число (android: minWidth = "1000dp") , моя проблемарешена.Не знаю, подходит ли он для вашей проблемы.Удачи

Питер Б.

0 голосов
/ 19 июля 2011

Вы, вероятно, говорите о длине затухающего края.

http://developer.android.com/reference/android/view/View.html#setFadingEdgeLength(int)

Попробуйте

setFadingEdgeLength(0);

Или

 setHorizontalFadingEdgeEnabled(false);

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

   <Gallery android:id="@+id/galleryid"
            android:layout_width="fill_parent" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...