Как сделать ActionBar как Google Play, что исчезает в при прокрутке

? Cristiana214 @ | Original: StackOverFlow
---

Как сделать прозрачным или полупрозрачным ActionBar как Google Play, что Проявление или при прокрутке с помощью windowActionBarOverlay ? Я также читал эту статью от https://developer.android.com/training/basics/actionbar/overlaying.html

Проверьте следующие скриншоты

http://i.stack.imgur.com/vKaw3.png

Я также попытался это http://stackoverflow.com/questions/6749261/custom-translucent-android-actionbar, но не работает ...

---

Top 5 ответ

1Tpec1j @

Пожалуйста, прочтите эту статью: http://cyrilmottier.com/2013/05/24/pushing-the-actionbar-to-the-next-level/

Там вы найдете пример и учебник о вашем questuion

2CommandSpace @

Нижекод я использовал в приложение я работаю

Вам придется использовать функцию OnScrollChanged в вашем ScrollView . ActionBar Не позволяет установить прозрачность, поэтому установить фоновый холст на ActionBar и вы можете изменить его непрозрачность на основе количества прокрутки в Scrollview . Я дал пример рабочего потока,

Наборы функция дает соответствующий альфа-канала для просмотра locationImage на основе его окне позиция WRT .

this.getScrollY() Дает сколькоscrollView прокрутил

public void OnScrollChanged(int l, int t, int oldl, int oldt) {
    // Code ...
    locationImage.setAlpha(getAlphaForView(locationImageInitialLocation- this.getScrollY()));
}


private float getAlphaForView(int position) {
    int diff = 0;
    float minAlpha = 0.4f, maxAlpha = 1.f;
    float alpha = minAlpha; // min alpha
    if (position > screenHeight)
        alpha = minAlpha;
    else if (position + locationImageHeight < screenHeight)
        alpha = maxAlpha;
    else {
        diff = screenHeight - position;
        alpha += ((diff * 1f) / locationImageHeight)* (maxAlpha - minAlpha); // 1f and 0.4f are maximum and min
                                            // alpha
        // this will return a number betn 0f and 0.6f
    }
    // System.out.println(alpha+" "+screenHeight +" "+locationImageInitialLocation+" "+position+" "+diff);
    return alpha;
}

EDIT: Я добавил пример рабочий образец на https://github.com/ramanadv/fadingActionBar, вы можете посмотреть на него.

Как сделать ActionBar как Google Play, что исчезает в при прокрутке

3Cristiana214 @

https://developer.android.com/training/basics/actionbar/overlaying.html

Как сделать ActionBar как Google Play, что исчезает в при прокрутке

Панель действий в режиме наложения .

Включить режим Overlay

To Включить режим Overlay for the action bar, you need to create a custom theme that extends an existing action bar theme and set the android:windowActionBarOverlay property to true.

Для Android 3.0 и выше только

Если ваш minSdkVersion установлен на 11 или выше, вашей темы следует использовать Theme.Holo тему ( или один из его потомков ) в качестве родительского теме. Например:

<resources>
    <!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme"
           parent="@android:style/Theme.Holo">
        <item name="android:windowActionBarOverlay">true</item>
    </style>
</resources>

Для Android 2.1 и выше

Если ваше приложение использует библиотеку поддержки для совместимости на устройствах под управлением версии ниже, чем Android 3.0, пользовательский тема должна использовать Theme.AppCompat тему ( или один из его потомков ) в качестве родительского теме. Например:

<resources>
    <!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme"
           parent="@android:style/Theme.AppCompat">
        <item name="android:windowActionBarOverlay">true</item>

        <!-- Support library compatibility -->
        <item name="windowActionBarOverlay">true</item>
    </style>
</resources>

Укажите Макет Топ - маржи

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="?android:attr/actionBarSize">
    ...
</RelativeLayout>
4shaobin0604 @

Пожалуйста, проверьте эту библиотеку https://github.com/ManuelPeinado/FadingActionBar, который реализует расплывающуюся Action Bar эффект, который вы хотите

5SmallSani @

On webView:

@JavascriptInterface
public void showToolbar(String scrollY, String imgWidth) {
    int int_scrollY = Integer.valueOf(scrollY);
    int int_imgWidth = Integer.valueOf(imgWidth);

    String clr;
    if (int_scrollY<=int_imgWidth-actionBarHeight) {
        clr = Integer.toHexString(int_scrollY * 255 / (int_imgWidth-actionBarHeight));
    }else{
        clr = Integer.toHexString(255);
    }

    toolbar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#"+clr+"9CCC65")));
}
Как сделать ActionBar как Google Play, что исчезает в при прокрутке