2017-08-12 15 views
2

私は自分のアクティビティにfabとBottomNavigationViewを持っていますが、私はfabを使ってBottomNavigationViewを隠して表示しています。私の次のコードは、Android 7.0で正常に動作しますが、FABとBottomNavigationViewの両方が表示されていない4.4(X 1280 768上)、logcatではそれがFABがBottomNavigationViewと重複しないようにするにはどうすればよいですか?

Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering

を語る上で、私も警告を受ける(1080 X 1920の場合) FABにこれはこれは私が時間午前どのように私のレイアウト

<RelativeLayout android:layout_height="match_parent" 
android:layout_width="match_parent" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:orientation="vertical" 
xmlns:android="http://schemas.android.com/apk/res/android"> 

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentBottom="true" 
    android:layout_gravity="bottom|end" 
    android:clickable="true" 
    app:fabSize="mini" 
    app:rippleColor="@color/colorPrimary" 
    android:layout_margin="16dp" 
    app:srcCompat="@drawable/ic_show" /> 

    <FrameLayout android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/container" 
     xmlns:android="http://schemas.android.com/apk/res/android"> 

     <!-- FrameLayout contents --> 

    </FrameLayout> 

    <FrameLayout 
     android:id="@+id/frame_layout" 
     android:layout_width="match_parent" 
     android:layout_height="3dp" 
     android:background="@android:color/transparent" 
     android:elevation="3dp"> 

     <!-- FrameLayout contents --> 

    </FrameLayout> 


     <android.support.design.widget.BottomNavigationView 
      android:id="@+id/navigation" 
      android:layout_width="match_parent" 
      android:layout_height="56dp" 
      android:layout_alignParentBottom="true" 
      android:background="@color/colorPrimary" 
      android:iconifiedByDefault="false" 
      app:itemIconTint="#fff" 
      app:itemTextColor="#fff" 
      app:menu="@menu/bottom_bar"/> 

</RelativeLayout> 

ある

@id/fab can overlap @id/navigation if @id/fab grows due to localize text expansion. If relative layout has text or button items aligned to left and right sides they can overlap each other due to localized text expansion unless they have mutual constraints like toEndOf/toStartOf.

を言って下

fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if(bottomNavigationView.getVisibility() == View.VISIBLE){ 

       bottomNavigationView.setVisibility(GONE); 

       fab.setImageDrawable(ContextCompat.getDrawable(getApplicationContext(), R.drawable.ic_show)); 

       final ObjectAnimator moveFab 
         = ObjectAnimator.ofFloat(fab, View.TRANSLATION_Y, fab.getY(), 0); 
       moveFab.setDuration(300); 
       moveFab.setInterpolator(new DecelerateInterpolator()); 
       moveFab.start(); 

      }else if(bottomNavigationView.getVisibility() == View.GONE){ 

       bottomNavigationView.setVisibility(View.VISIBLE); 

       fab.setImageDrawable(ContextCompat.getDrawable(getApplicationContext(), R.drawable.ic_hide)); 

       final ObjectAnimator moveFab 
         = ObjectAnimator.ofFloat(fab, View.TRANSLATION_Y, fab.getY(), -150); 
       moveFab.setDuration(300); 
       moveFab.setInterpolator(new DecelerateInterpolator()); 
       moveFab.start(); 

      } 

     } 
    }); 

答えて

0

最も簡単な方法を示すidingは/ CoordinatorLayoutを使用することです。例としてthis tutorialを参照してください。

関連する問題