2017-04-18 12 views
0

FloatingActionButtonにアイコンの代わりにテキストを表示したい。したがって、私はこれを達成するためにFrameLayoutを利用しました。しかし、onClickListernersのどれも働いていません。 android:clickable="true"はまだ変更されていません。私は両方の方法を使用してみましたframelayout内のFloatingActionButtonが機能しない

<FrameLayout 
    android:id="@+id/frame" 
    android:layout_width="50dp" 
    android:layout_height="50dp" 
    android:layout_gravity="bottom|end" 
    android:clickable="true" 
    android:layout_margin="@dimen/activity_horizontal_margin"> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <TextView 
     android:id="@+id/text" 
     android:layout_width="30dp" 
     android:layout_height="match_parent" 
     android:elevation="7dp" 
     android:gravity="center" 
     android:layout_gravity="center_horizontal" 
     android:maxLines="3" 
     android:text="My Text" 
     android:clickable="true" 
     android:textAllCaps="true" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textColor="@android:color/white" 
     android:textSize="8sp" 
     android:textStyle="bold" /> 
</FrameLayout> 

:以下 は私のサンプルレイアウトファイルである 1. Activityクラス内のすべての3つの要素、すなわちでframeLayout、FABとTextViewの

に、プログラムonClickListener設定android:onClick="myMethod" 2.設定しますしかし、私は通常、FABを使用して、すなわちFrameLayoutを使わずに。それは正常に動作しています。

解決策をご提供ください。

EDIT:Activity.java

fab = (FloatingActionButton) findViewById(R.id.fab); 
    text= (TextView) findViewById(R.id.text); 
    frame = (FrameLayout) findViewById(R.id.frame); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      myMethod(); 
     } 
    }); 

    text.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      myMethod(); 
     } 
    }); 

    frame.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      myMethod(); 
     } 
    }); 

MyMethodは内部ロガー実装存在()。コンソールにログが表示されないため、onClickイベントが発生していないようです。

更新: レイアウトファイルには、FrameLayoutと同じレベルのRecyclerViewも含まれています。問題はRecyclerViewの存在のために発生しますか?

+0

framelayoutから 'android:clickable =" true "'を削除します。 – rafsanahmad007

+0

クリックイベントコードを投稿してください – Shivam

+0

浮動ボタンを使用することは重要ですか?あなたはボタンに丸形の背景を設定することによって同じことを達成することができます。 –

答えて

0

問題が解決しました。 FrameLayoutのandroid:layout_anchorをリサイクルビューIDに設定しました。ボタンがクリック可能になりました。

関連する問題