2

你好我正在我的Android應用程序中創建一個簡單的滾動活動。滾動活動具有帶視差效​​果的CollapsingToolbarLayout和錨定到AppbarLayout的浮動動作按鈕。CollapsingToolbarLayout with FloatingActionButton錯誤

當我向下滾動文本時,晶圓廠消失了,當我將其向上滾動時,浮動動作按鈕再次出現。

的錯誤是

1)當再次出現floatingActionBar它被定位在頁面的底端和之後的第二它移動到其正確的位置(appbarlayout)。 2)有一個奇怪的餘地,我無法弄清楚工具欄和頁面的內容之間。

因爲這是非常醜陋的,看我想知道:

1.How我能解決這個問題? 2.我可以如何保持工廠的可見性並將其固定到摺疊的工具欄上?

這裏是錯誤的演示:http://i.giphy.com/LPMqLSl46Yvu0.gif

這裏是我的佈局:

<?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" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="toxotes.mystikon.EventActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/app_bar_event" 
     android:layout_width="match_parent" 
     android:layout_height="200dp" 
     android:fitsSystemWindows="true" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

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

      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="200dp" 
       app:layout_collapseMode="parallax" 
       android:src="@drawable/test" 
       android:scaleType="centerCrop"/> 
      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar_event" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/AppTheme.PopupOverlay" /> 

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

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

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab_event" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@android:drawable/ic_media_play" 
     app:layout_anchor="@id/app_bar_event" 
     app:layout_anchorGravity="bottom|end" /> 

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

這裏是content_event佈局:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="toxotes.mystikon.EventActivity" 
    tools:showIn="@layout/activity_event"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/text_margin" 
     android:text="@string/large_text" /> 

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

這裏是Java:

public class EventActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_event); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_event); 
     setSupportActionBar(toolbar); 

     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab_event); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
         .setAction("Action", null).show(); 
      } 
     }); 
    } 
} 
+0

的Android設計支持的版本使用的是? –

+0

'com.android.support:design:24.2.0' –

+0

嘗試使用'com.android.support:design:24.1.1' –

回答

0

就在今天,我有完全相同的問題。您必須將支持庫更新到版本24.2.1。在你的build gradle中。這爲我修好了。

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:24.2.1' 
    compile 'com.android.support:cardview-v7:24.2.1' 
    compile 'com.android.support:recyclerview-v7:24.2.1' 
    compile 'com.android.support:support-v13:24.2.1' 
    compile 'com.android.support:design:24.2.1' 
} 

但後來我得到了與矢量繪圖資源問題:

java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat. 

這裏如果你運行該解決方案到同一個問題:http://android-developers.blogspot.de/2016/02/android-support-library-232.html

+0

完美的工作,謝謝。 –