2017-07-13 3 views
1

CoordinatorLayoutに基づいてレイアウトを作成する際に問題があります。レイアウトは非常にシンプルで、ツールバー、RecyclerView、TextView(リストに要素がない場合はリサイクルビューを置き換えます)とフローティングアクションボタンが含まれています。ここでは、コードは次のようになります。FABはリサイクラビューに1つの要素を追加するときに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?)に整列して表示RECYCLERする項目を追加するときにということです。 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" 

を交換してくださいすることができます。

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); 

レイアウトは、タグのみが欠落している閉じて、実際に完了している:私はまた、多少、私はプログラム的にテキストビューでリサイクルビューを切り替えるとlayout_anchorGravityが欠落している属性が、コードの下には、とにかく問題を解決しないことを検討しました。

関連する問題