Измените цвет фона заголовка в CollapsingToolbarLayout с помощью сетки или наложения цвета

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

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

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

Фон заголовка Android CollapsingToolbarLayout

Я применил это решение к своему проекту Android, но оно не сработало, представление, установленное после imageView, не отображается (не знаю почему), но чего я еще не нашел (ни в google, ни в документации) как это сделать с наложением цвета.

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

Это то, что у меня есть до сих пор:

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

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

Это мой код:

файл EstablecimientosDetail:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent i = getIntent();
        establecimiento = (HashMap<String, String>) i.getBundleExtra(TAG_ESTABLECIMIENTOS).getSerializable("Hashmap");

        setContentView(R.layout.activity_establecimientos_detalle);
        final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_establecimiento_detalle);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        CollapsingToolbarLayout toolBarLayout = (CollapsingToolbarLayout) findViewById(R.id.toolbar_layout);
        toolBarLayout.setTitle(establecimiento.get(TAG_NOMBRE));
        toolBarLayout.setContentScrimColor(R.color.black_semi_transparent);
//        toolBarLayout.setCollapsedTitleTextColor(R.color.abc_primary_text_material_light);
        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Llamando...", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });

        loadImage();
    }

    private void loadImage() {
        final ImageView imageView = (ImageView) findViewById(R.id.backdrop);
        Log.e("imagen actividad", establecimiento.get(TAG_IMAGEN_RECETA));
        Picasso.with(this).load(establecimiento.get(TAG_IMAGEN_RECETA)).error(R.drawable.logo_ternera_negro).into(imageView);
    }

Соответствующий файл макета:

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/app_bar_height"
    android:fitsSystemWindows="true"
    android:theme="@style/Theme.TerneraGallega.AppBarOverlay">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/toolbar_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:expandedTitleMarginEnd="64dp"
        app:expandedTitleMarginStart="48dp"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

        <ImageView
            android:id="@+id/backdrop"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            android:scaleType="centerCrop"
            app:layout_collapseMode="parallax" />

        <!--<View-->
            <!--android:layout_width="match_parent"-->
            <!--android:layout_height="?attr/actionBarSize"-->
            <!--android:background="#000"-->
            <!--android:layout_gravity="bottom"/>-->

        <!--<View-->
            <!--android:layout_width="match_parent"-->
            <!--android:layout_height="@dimen/sheet_text_scrim_height_top"-->
            <!--android:background="@drawable/scrim_top"-->
            <!--app:layout_collapseMode="pin" />-->

        <View
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_gravity="bottom"
            android:background="@drawable/scrim_bottom" />

        <!--<include layout="@layout/toolbar" />-->
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar_establecimiento_detalle"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            app:theme="@style/EstablecimientosDetalleTheme" />

    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

<include layout="@layout/content_establecimientos_detalle" />

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/fab_margin"
    android:src="@drawable/ic_action_call"
    app:borderWidth="0dp"
    app:layout_anchor="@id/app_bar"
    app:layout_anchorGravity="bottom|end" />

And also the styles and drawable files:

scrim_botton.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:angle="90"
        android:startColor="@color/translucent_scrim_bottom"
        android:centerColor="@color/translucent_scrim_bottom_center"
        android:endColor="@android:color/transparent"/>
</shape>

стили.xml

    <style name="EstablecimientosDetalleTheme" parent="Theme.AppCompat.NoActionBar">

    <item name="android:textColorPrimary">@color/abc_primary_text_material_light</item>

     <item name="android:textColorPrimaryInverse">@color/abc_primary_text_material_light</item>

    <item name="actionMenuTextColor">@color/abc_primary_text_material_light</item>

    <item name="android:textColorSecondary">@color/abc_secondary_text_material_light</item>

</style>

Кто-нибудь знает, как добиться такого поведения?

заранее спасибо


comment
Это может помочь github.com/anton46/WhatsApp-ProfileCollapsingToolbar.   -  person Marian Paździoch    schedule 13.05.2016
comment
Этот ответ сработал очень хорошо. Я бы порекомендовал это.   -  person kksal55    schedule 09.08.2017
comment
Этот ответ сработал очень хорошо. Я бы порекомендовал это.   -  person kksal55    schedule 09.08.2017


Ответы (1)


Наконец я нашел решение. Всем, как обстоят дела с экранными представлениями с помощью CollapsingToolbarLayout и AppBarLayout, вы должны установить минимальную библиотеку поддержки appcompat и дизайн поддержки 23+.

Ответ, предоставленный в этом вопросе, действителен stackoverflow

Но, пожалуйста, помните об установке build.grade

compile 'com.android.support:design:23.1.0'
compile 'com.android.support:appcompat-v7:23.1.0'

Вместе с

android {
    compileSdkVersion 23
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.irixgalicia.terneragallega"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
person neteot    schedule 09.11.2015
comment
можно где-нибудь эффект, который вы создали? - person Marian Paździoch; 13.05.2016
comment
Привет @MarianPaździoch, я не понимаю твоего вопроса.. ты хочешь увидеть эффект? - person neteot; 13.05.2016
comment
Да, я хочу это увидеть. - person Marian Paździoch; 13.05.2016