Como fazer um ActionBar como Google Play que desaparece quando a rolagem

? Cristiana214 @ | Original: StackOverFlow
---

Como fazer ActionBar transparente ou translúcido como Google Play que desaparece dentro ou para fora quando a rolagem usando windowActionBarOverlay ? Eu também li este artigo de https://developer.android.com/training/basics/actionbar/overlaying.html

Confira as imagens a seguir

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

Eu também tentei isso http://stackoverflow.com/questions/6749261/custom-translucent-android-actionbar mas não funciona ...

---

Top 5 Responder

1Tpec1j @

Por favor, leia este artigo : http://cyrilmottier.com/2013/05/24/pushing-the-actionbar-to-the-next-level/

Lá você vai encontrar exemplo e tutorial sobre o seu questuion

2CommandSpace @

A seguir está o código que usei no app Eu estou trabalhando

Você vai ter que usar a função OnScrollChanged em sua ScrollView . ActionBar Não permite que você defina a opacidade, para definir um drawable fundo no ActionBar e você pode mudar sua opacidade com base na quantidade de rolagem na scrollview . Eu dei um fluxo de trabalho exemplo

Os conjuntos de funções dá o alfa apropriado para o locationImage vista com base na sua janela de posição WRT .

this.getScrollY() Dá-lhe o quanto o scrollView rolaram

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: Eu adicionei um exemplo amostra trabalhando em https://github.com/ramanadv/fadingActionBar, você pode ter um olhar para ele .

Como fazer um ActionBar como Google Play que desaparece quando a rolagem

3Cristiana214 @

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

Como fazer um ActionBar como Google Play que desaparece quando a rolagem

barra de ação no modo de sobreposição .

Ativar o modo de sobreposição

To Ativar o modo de sobreposição 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.

Para Android 3.0 e superior apenas

Se o seu minSdkVersion está definido para 11 ou superior, o seu tema personalizado deve usar tema Theme.Holo (ou um de seus descendentes ) como seu tema principal. Por exemplo:

<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>

Para Android 2.1 e superior

Se seu aplicativo está usando a biblioteca de suporte para compatibilidade com versões em dispositivos menores que executam o Android 3.0, o tema personalizado deve usar Theme.AppCompat tema (ou um de seus descendentes ) como seu tema principal. Por exemplo:

<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>

Especifique layout Top -margin

Quando a barra de ação está em modo de sobreposição, pode obscurecer um pouco do seu layout que deve permanecer visível . Para garantir que tais itens permanecer abaixo da barra de ação em todos os momentos, adicionar ou margin ou padding para o topo da view ( s) usando a altura especificada por actionBarSize . Por exemplo:

<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 @

Por favor, verifique esta biblioteca https://github.com/ManuelPeinado/FadingActionBar que implementa o efeito legal bar ação desvanecimento que você deseja

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")));
}
Como fazer um ActionBar como Google Play que desaparece quando a rolagem