Полосы прокрутки в стиле планшета Gmail с прозрачной панелью действий - PullRequest
9 голосов
/ 21 октября 2011

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

Как правило, в сотовой версии Gmail справа от списка сообщений находится вид списка, и когда вы прокручиваете вид списка, элементы переходят под панель действий, которая, кажется, имеет некоторую форму градиента с #00FFFFFF внизу вверх. до #FFFFFFFF вверху, создавая впечатление исчезновения предметов.

Но важно отметить, что СКРОЛБАР в списке никогда не попадает под панель действий! и верхняя позиция по умолчанию для списка находится под полосой прокрутки.

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

Я достиг того, чего достиг, используя

getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);

и

getActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.actionbar_bg));

, который можно нарисовать в формате XML, который просто имеет цвет #BB000000 (градиента пока нет)

это текущий эффект, полоса прокрутки видна под панелью действий: (* ​​1020 *

Current effect

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

Desired effect

Редактировать: Я думаю, что это, вероятно, использует что-то нестандартное в Google и почти отказался от выяснения этого

Ответы [ 3 ]

2 голосов
/ 26 октября 2011

позвоните до super.onCreate(savedInstanceState); в onCreate вашей деятельности

requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);

Подробнее: http://developer.android.com/reference/android/view/Window.html#FEATURE_ACTION_BAR_OVERLAY

1 голос
/ 02 мая 2012

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

Первый и самый простой способ - создать для вас фоновый файл из 9 патчей ActionBar, который имеет расширяющуюся область градиента и фиксированную непрозрачную область справа, на той же стороне, что и полоса прокрутки. Таким образом, полоса прокрутки все равно будет находиться под панелью действий, но она будет скрыта. Однако это будет иметь эффект исчезновения / уменьшения полосы прокрутки.

Другой вариант - отредактировать большой палец полосы прокрутки в xml следующим образом:

<ListView android:scrollbarThumbVertical="@drawable/YOUR_CUSTOM_THUMB" ></ListView>

Затем создайте большой палец полосы прокрутки с прозрачным смещением вверху.

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

0 голосов
/ 06 декабря 2011

просто используйте:

getActionBar().setBackgroundDrawable(null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...