4

私の引き出しに表示されるオンクリック効果を得ることに問題があります。DrawingLayout with NavigationView - クリックで波紋効果が表示されない

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout 
    android:id="@+id/drawer_layout" 
    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:openDrawer="start"> 

    <include 
     layout="@layout/app_bar_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/nav_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:fitsSystemWindows="true" 
     app:headerLayout="@layout/nav_header_main" 
     app:menu="@menu/activity_main_drawer"/> 

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

あなたは私が私のDrawerLayoutNavigationViewを入れた後、メニューXMLファイルを使用してNavigationViewを移入見ることができるように次のように

は私が活動のxmlレイアウトを持っています。

次のように私のactivity_main_drawer.xmlが見えます:

残念ながら
<menu 
xmlns:android="http://schemas.android.com/apk/res/android" 
> 
<group> 
    <item 
     android:id="@+id/id1" 
     android:title="Item 1"/> 
    <item 
     android:id="@+id/id2" 
     android:title="Item 2"/> 
    <item 
     android:id="@+id/id3" 
     android:title="Item 3"/> 
    <item 
     android:id="@+id/id4" 
     android:title="Item 4"/> 
</group> 

、私はそれ私がその引き出しメニューの項目をクリックした後、任意の視覚効果を持っていないそのように行うとき。私が望むのは、いわゆる「波及効果」を持つことです。どうしたらいいですか?

+0

を助けることを願っていますか? – azizbekian

+0

@azizbekian私はAndroid 7.1を使用しています。2 – michalsol

答えて

1

リップルエフェクトは、次のように追加できます。

アプリ:

次の属性を提出してXML内NavigationViewにitemBackgroundを追加itemBackground =また

"描画可能/ ripple_navigation_selector @" を、描画可能-V21フォルダ内に、ripple_navigation_selectorを追加します。 xml

+0

残念ながら、リップル効果は依然としてアクセシブルではありません。この解決法は機能しません。 – michalsol

1

appcompatを使用している場合は、これをナビゲーションドロワー項目のXMLに追加できます。

上記の解は、answerから取られます。

希望すると、これが役立ちます。

+0

動作しません。引き出しが透明になるだけですが、波紋効果はまだ表示されません。 – michalsol

0

パフォーマンスが低下する可能性がありますので、onClickで何かを行う前に200〜300msの遅延を加えてみてください。

public void itemClicked(MenuItem item) { 
    Handler theHandler = new Handler(); 
    theHandler.postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        //whatever you wish to do 
       } 
      }, 200); 
} 

は、このくらいの遅延がユーザーに表示され文句を言わないが、円滑な波及効果が表示されます心配しないでください。

私もこの属性を削除してください。この問題

に直面している

+0

それは理由ではありません。その解決策は役に立たなかった。 – michalsol

2

クリッカブル=真

focusableOnTouch =真

は、波及効果のXML

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:color="@android:color/transparent" 
tools:targetApi="lollipop"> <!-- ripple color --> 

<item android:drawable="@android:color/transparent" /> <!-- normal color --> 
を適用

私はそれはあなたが上でテストしているOSのバージョンは何

+1

'clickable = true'と' focusableOnTouch = true'を削除するとどういう意味ですか?私はそれらの属性を持っていません。 しかし、あなたの解決策もうまくいきません - まだ波及効果はありません:( – michalsol

+0

なぜこの回答は2つのupvotesと25の賞金ポイントを受け取ったのですか?それは意味がありません。 –

関連する問題