Графическая проблема с управлением вращением в Android - PullRequest
2 голосов
/ 14 мая 2011

Мое первое (старое) приложение для Android ( Калькулятор приостановки ) показывает проблему, для которой я не могу найти решение: элемент управления вращением на некоторых вращателях показывает прозрачные линии в нежелательных местах,Паттерн таков: любая другая прядильщица сталкивается с этой проблемой, начиная с первого регулятора прядильщика.Таким образом, в то время как счетчики 2, 4, 6, ... не имеют нежелательных линий, счетчики 1, 3, 5, ... имеют их.

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

Я не могу предоставить изображение напрямую:

[...] как механизм предотвращения спама, новым пользователям не разрешено публиковать изображения.

Но я могу дать вам ссылку:

Снимок экрана, иллюстрирующий проблему графического счетчика

XML-файл в res/layoutвыглядит так:

<ScrollView ...>
    <TableLayout ...>
        <TableRow>
            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="@string/units"
                android:gravity="center_vertical"
                android:paddingRight="5dp"
            />
            <Spinner
                android:id="@+id/unit_spinner"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:drawSelectorOnTop="true"
            />
        </TableRow>
        ...
    </TableLayout>
</ScrollView>

Я вижу эту проблему по крайней мере со времен Froyo (Android 2.2).В более ранних версиях (по крайней мере, Android 1.6) его там не было.Его нет в редакторе Graphical Layout в Eclipse, но я вижу, что он запускает приложение на телефоне и в эмуляторе - это, по крайней мере, непротиворечиво и указывает на проблему, которую я вызываю, потому что я не все делаю правильно;*

1 Ответ

1 голос
/ 18 мая 2011

На самом деле я могу воспроизвести это поведение на Android 2.3. Невозможно на Android 2.2 и ниже.

Не имеет значения, поместите ли вы Spinner в TableLayout или RelativeLayout. Та же проблема там ..

Единственным выходом из линий было размещение 1px-View между счетчиком:

<Spinner android:layout_height="wrap_content" android:id="@+id/spinnerDriver"
    android:layout_width="match_parent" android:layout_below="@id/driverDesc" />

<View android:id="@+id/helper" android:layout_height="1px"
    android:layout_width="match_parent" android:layout_below="@id/spinnerDriver" />

<Spinner android:layout_height="wrap_content" android:id="@+id/spinnerDriver1"
    android:layout_width="match_parent" android:layout_below="@id/helper" />

Это на самом деле очень, очень, очень ... безобразное решение, но оно работает для меня ...

...