2017-07-13 28 views
1

我在創建基於CoordinatorLayout的佈局時遇到問題。佈局非常簡單,它包含工具欄,RecyclerView,TextView(當列表中沒有元素時替換回收站視圖)和浮動操作按鈕。下面是代碼:添加一個元素到回收站視圖時,FAB與AppBarLayout對齊

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
android:id="@+id/mainCoordinatorLayout" 
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" 
tools:context="com.steveq.qroclock_20.presentation.activities.MainActivity" 
android:orientation="vertical"> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize"> 
    <android.support.v7.widget.Toolbar 
     android:id="@+id/mainToolbar" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:elevation="4dp" 
     android:fitsSystemWindows="true"> 
     <TextView 
      android:id="@+id/toolbarTitleTextView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="start" 
      android:text="@string/app_name" 
      android:textSize="24sp" 
      fontPath="fonts/SourceSansPro-Bold.ttf" 
      android:textColor="@color/material_teal_800"/> 
    </android.support.v7.widget.Toolbar> 
</android.support.design.widget.AppBarLayout> 

<android.support.v7.widget.RecyclerView 
    android:id="@+id/alarmsRecyclerView" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:scrollbars="vertical" 
    android:padding="4dp" 
    android:visibility="visible" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

<TextView 
    android:id="@+id/emptyRecyclerViewReplacement" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" 
    android:visibility="gone" 
    android:text="no alarms" /> 


<android.support.design.widget.FloatingActionButton 
    android:id="@+id/addAlarmFab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:srcCompat="@drawable/plus_vec" 
    android:layout_margin="16dp" 
    app:layout_anchor="@id/alarmsRecyclerView" 
    app:layout_anchorGravity="bottom|right|end" 
    android:clickable="true" 

的問題是,當我啓動應用程序並加入項目,以回收查看FAB對齊到工具欄(AppBarLayout?)。當我添加另一個項目時,FAB會到達目的地。下面我還添加它的外觀。你對這個問題的原因有什麼想法嗎?

問候, 亞當

enter image description here

enter image description here

回答

1

你的XML佈局是不完整的,但乍看之下,林不知道你需要在你FloatingActionButton設置錨。你可以嘗試用

android:layout_gravity="bottom|end" 
0

它工作正常,謝謝更換

app:layout_anchor="@id/alarmsRecyclerView" 
app:layout_anchorGravity="bottom|right|end" 

。我也研究了幾分屬性,當我編程切換視圖回收與文本的看法,但下面的代碼反正不解決問題layout_anchorGravity丟失:

CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) 
alarmFab.getLayoutParams(); 
params.setAnchorId(emptyTextView.getId()); 
params.gravity = Gravity.BOTTOM | GravityCompat.END; 
alarmFab.setLayoutParams(params); 
alarmsRecyclerView.setVisibility(View.GONE); 
emptyTextView.setVisibility(View.VISIBLE); 

佈局實際上是完整的,只有在關閉標籤丟失。

相關問題