15

Zaktualizowałem moje studio Android kilka dni temu i zacząłem pracować z CoordinatorLayout i CollapsingToolbarLayout po prostu próbowałem rzeczy.CollapsingToolBarLayout - pasek statusu scrim color dosent change

Wydaje się, że pasek płótno kolor zastępują pasku stanu początkowego koloru i kolor paska stanu siatka (próbowałem zarówno z XML i kodu)

stan początkowy:

initial state:


rozpoczęło przewijanie:

started scrolling


przewijane aż zawaleniem:

scrolled until collapsing


więc pytania są:

1.How mogę zapobiec pasek zastąpić pasek stanu, kiedy zawaleniem (nawet nie pozwalając obraz, który zawalam, aby przejść nad nim).

2.How mogę zmienić kolor paska stanu po zawaleniem

Inną kwestią jest to, że miałem dałem pasek narzędzi początkowego koloru i nie tylko scrim kolor, ponieważ chciałem na pasku narzędzi nad obraz, ale zamiast to pójdzie na top obrazu i obejmie niektóre z nich, a także obejmie wszystko, co dzieje się zwinąć za to


dodaje kolor/styl na pasku narzędzi w xml:

added colour/style to the toolbar in the xml


3. Czy istnieje jakiś sposób, aby umieścić pasek narzędzi nad zdjęciem od początku i po prostu zwinąć obraz? (Myślałem o może utrzymać pasek narzędzi przypięte i i układ ramki przed obrazem, ale jej nadal zamierzam załamanie na obszarze paska stanu, który jest głównym pytaniem.)


główny xml działalność:

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.design.widget.CollapsingToolbarLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed" 
     app:contentScrim = "?attr/colorPrimary" 
     app:statusBarScrim="?attr/colorAccent" --------> not changing 
     android:id="@+id/my_ctl"> 


     <ImageView 
      android:id="@+id/image" 
      android:src="@drawable/flights" 
      android:layout_width="match_parent" 
      android:layout_height="250dp" 
      android:scaleType="centerCrop" 
      android:fitsSystemWindows="true" 
      app:layout_collapseMode="parallax" 
      /> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:popupTheme="@style/AppTheme.PopupOverlay" 
      app:layout_collapseMode="pin" /> 


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

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


<android.support.v4.widget.NestedScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:clipToPadding="false" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" > 

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

</android.support.v4.widget.NestedScrollView> 

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|end" 
    android:layout_margin="@dimen/fab_margin" 
    android:src="@android:drawable/ic_dialog_email" /> 

</android.support.design.widget.CoordinatorLayout> 

MainActivity.java:

CollapsingToolbarLayout ctl = (CollapsingToolbarLayout) findViewById(R.id.my_ctl); 
    //ctl.setContentScrimColor(Color.RED); 
    ctl.setStatusBarScrimColor(Color.BLUE); --------> not working 
    ctl.setTitle("blabla"); 

Odpowiedz

4

spróbuj dodać android:fitsSystemWindows="true" do AppBarLayout. To zadziałało dla mnie.

0

w punkcie # 3: Na pasku dodać przezroczyste tło

android tło = "@ android: kolor/przezroczysty"

<android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:popupTheme="@style/AppTheme.PopupOverlay" 
      app:layout_collapseMode="pin" 
      android:background="@android:color/transparent" /> 
19
app:statusBarScrim="@android:color/transparent" 
+0

nigdy o tym nie słyszałem .. dziękuję !! – Sjd

0

dla 2) Istnieje a known issue

na razie programowo ustawiam kolor tła paska narzędziowego

jest to oczywiście prosta implementacja. Możesz ją zoptymalizować.

+0

Nie ma 'AppBarStateChangeListener', więc prawdopodobnie OP musi zrobić coś takiego: http://stackoverflow.com/questions/31682310/android-collapsingtoolbarlayout-collapse-listener – dumbfingers