13

I CoordinatorLayout bin mit diesem Effekt zu erhalten:in CollapsingToolbarLayout Symbol mit Titel hinzufügen

This is screenshot of the same app on iOS

Hier ist der Layout-Code:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/coordinatorRootLayout" 
    android:background="@android:color/background_light" 
    android:fitsSystemWindows="true" 
    > 


<android.support.design.widget.AppBarLayout 
      android:id="@+id/android_appbar_layout" 
      android:layout_width="match_parent" 
      android:layout_height="220dp" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

      <android.support.design.widget.CollapsingToolbarLayout 
       android:id="@+id/collapsingToolbarLayoutAndroidExample" 
       android:layout_width="match_parent" 
       android:background="#fff" 
       app:collapsedTitleGravity="left" 
       app:expandedTitleTextAppearance="@color/card_outline" 
       android:layout_height="match_parent" 
       app:layout_scrollFlags="scroll|exitUntilCollapsed" 
       android:fitsSystemWindows="true" 
       app:expandedTitleGravity="center_horizontal" 
       app:contentScrim="?attr/colorPrimary" 
       app:statusBarScrim="?attr/colorPrimary" 
       app:expandedTitleMarginStart="32dp" 
       app:expandedTitleMarginEnd="48dp"> 

      <ImageView 
        android:id="@+id/parallax_header_imageview" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:scaleType="fitXY" 
        android:src="@drawable/orange_triangle" 
        app:layout_collapseMode="parallax" 
        app:layout_collapseParallaxMultiplier="0.8"/> 


       <ImageView 
        app:expandedTitleGravity="center_horizontal" 
        android:id="@+id/someImage" 
        android:layout_width="100dp" 
        android:layout_height="100dp" 
        android:src="@drawable/circle" 
        android:layout_gravity="center_horizontal" 
        app:layout_collapseMode="parallax" 
        app:layout_collapseParallaxMultiplier="-1" 
        /> 
       <android.support.v7.widget.Toolbar 
        android:id="@+id/toolbar_android" 
        android:layout_width="match_parent" 
        android:layout_height="?attr/actionBarSize" 
        app:layout_collapseMode="none" 
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> 

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


     </android.support.design.widget.AppBarLayout> 
    <android.support.v4.widget.NestedScrollView 
      android:id="@+id/nested_scroll_view" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:fillViewport="true" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

      <LinearLayout 
       android:id="@+id/linear_layout_android" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:padding="15dp" 
       android:background="@color/off_white" 
       android:layout_gravity="center_horizontal" 
       android:gravity="center_horizontal" 
       android:orientation="vertical"> 

       <GridView 
        android:id="@+id/gridview_parallax_header" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:columnWidth="100dp" 
        android:gravity="center" 
        android:numColumns="auto_fit" 
        android:stretchMode="columnWidth" /> 

      </LinearLayout> 

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


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

und hier ist das, was als Ausgabe erhalte ich Wie kann ein Icon mit dem Titeltext verwendet werden?

enter image description here

+1

Überprüfen Sie dieses Blog mit benutzerdefinierten Verhaltensweisen http://saulmm.github.io/mastering-koordinator – SANAT

+0

ja @SANAT Ich habe das auch versucht, wie ich bereits erwähnt habe, aber wie kann ich ein Symbol mit dem Text setzen. Bitte –

Antwort

6

versuchen, können Sie versuchen, die folgenden

Reference for Co-Ordinator Layout

Jetzt in Ihrem MainActivity.java

private void handleToolbarTitleVisibility(float percentage) { 
    if (percentage >= PERCENTAGE_TO_SHOW_TITLE_AT_TOOLBAR) { 

     if(!mIsTheTitleVisible) { 
      startAlphaAnimation(textviewTitle, ALPHA_ANIMATIONS_DURATION, View.VISIBLE); 
      toolbar.setAlpha(0.9f); 
      toolbar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.Primary))); 
      mIsTheTitleVisible = true; 
     } 
    } 
    else { 
     if (mIsTheTitleVisible) { 
      startAlphaAnimation(textviewTitle, ALPHA_ANIMATIONS_DURATION, View.INVISIBLE); 
      toolbar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(android.R.color.transparent))); 
      mIsTheTitleVisible = false; 
     } 
    } 
} 

Hinweis: Halten Sie die Symbolleisten Hintergrund transparent, wenn sie erweitert.

+0

Ich habe eine lange Work-Around getan und ja, ich habe was ich wollte. –

1

Sie können anhand von diesem Beispiel nehmen: -

android ParallaxHeaderViewPager

+0

Nein, es ist nicht das, wonach ich suche. es funktioniert nicht mit gridview –

+0

https://github.com/saulmm/CoordinatorBehaviorBeispiel versuchen Sie dieses eine seine Arbeit für mich – Pawanpreet

+0

@Pawantpreet ist dies auch nicht. Ich habe das auch versucht. –

0

dies Ihr Problem lösen sein:

Sie können den erweiterten Titel positionieren, wo immer Sie, indem Sie diese wollen CollapsingToolbarLayout Attribute:

app:expandedTitleGravity  default is bottom|left -or- bottom|start 
app:expandedTitleMargin 
app:expandedTitleMarginBottom 
app:expandedTitleMarginStart 
app:expandedTitleMarginEnd 

-Code für das Layout Datei:

<android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapse_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed" 
      android:fitsSystemWindows="true"> 

      <ImageView 
       android:id="@+id/bgheader" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:scaleType="centerCrop" 
       android:fitsSystemWindows="true" 
       android:background="@drawable/sunflowerpic" 
       app:layout_collapseMode="pin" /> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/MyToolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:layout_collapseMode="parallax" /> 

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

dann in Ihrer Java-Datei SetTitle:

CollapsingToolbarLayout collapsingToolbar = 
       (CollapsingToolbarLayout) findViewById(R.id.collapse_toolbar); 
     collapsingToolbar.setTitle("Title"); 

Symbol Hinzufügen Top Ecke: Verwendung app:layout_collapseMode="pin" mit ImagView. Für z.B.

<ImageView 
      android:id="@+id/someImage" 
      android:layout_width="56dp" 
      android:layout_height="wrap_content" 
      android:src="@drawable/someDrawable" 
      android:padding="16dp" 
      android:layout_gravity="top|end" 
      app:layout_collapseMode="pin" 
      /> 

Verweis auf diesen Link Collapsing Toolbar Example

+0

Bitte lesen Sie meine Frage richtig Ich brauche ein Bild mit dem Titel. –

+0

und wie füge ich ein kleines Symbol, das mit dem Titel von Mitte zu Symbolleiste animieren wird. wie Sie das Bild sehen können.Im zweiten Bild können Sie das Bild sehen, aber es ist beim Scrollen ganz oben. Ich möchte nur ein Bild mit dem Titel. –

+0

Ich habe diesen Code geschrieben, wenn Sie sehen können. Würden Sie sich darauf konzentrieren, ein Symbol hinzuzufügen? Bitte –

1

Ich schlage vor, Sie Childs and dependencies

 public boolean onDependentViewChanged(
  
     CoordinatorLayout parent, 
     CircleImageView avatar, 
     View dependency) {
  

     modifyAvatarDependingDependencyState(avatar, dependency); 
    } 

    private void modifyAvatarDependingDependencyState(
    CircleImageView avatar, View dependency) { 
     // avatar.setY(dependency.getY()); 
     // avatar.setBlahBlat(dependency.blah/blah); 
    } 

http://www.devexchanges.info/2016/03/android-tip-custom-coordinatorlayout.html

CollapsingToolbarLayout with a custom view

+0

Ich habe diesen Code versucht, aber in der Symbolleiste befindet sich in der unteren Seite. –

+0

sehe meine bearbeitete Antwort, ich schlage vor, dass versuchen, das zu folgen, und Sie müssen für die Symbolleiste ändern –

Verwandte Themen