私はカスタムボタンレイアウトを持っています。その中心にある通常のボタンと背景のFrameLayout、テキストの隣にアイコンがあります。OnClickListenerレイアウト検出
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/framelayout"
style="?android:attr/buttonStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:background="#F00">
<android.support.v7.widget.AppCompatButton
android:id="@+id/buttonWithIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom"
android:background="@null"
android:drawableStart="@android:drawable/ic_delete"
android:gravity="center"
android:textAllCaps="false"
android:textColor="#FFF"/>
</FrameLayout>
Iは、ONボタンonClickListeners
を有し、Iを実現、バックグラウンド(=でframeLayout)をクリック検出されませんでした。このため、FrameLayoutとButtonのクリックを検出するonClickListenerが必要です。これは、同じ動作をする2つのリスナーを必要としません。
RelativeLayoutにIDを割り当てようとしましたが、レイアウトが見つかりませんでした(= null)。
多分私のボタンのレイアウトは最適ではありません。しかし、私はアイコンとテキストの間にスペースを入れずに、テキストの横にアイコンがある全角ボタンが必要です。
アイコンがこの
button.setCompoundDrawablesWithIntrinsicBounds(R.mipmap.ic_icon, 0, 0,0);
ように設定されますが、あなたに
必要なのは、最後に「スペース」がないボタンと次のビュー(アイコン)が必要な場合は、[setPadding](https:// developers)で削除する方法です。 android.com/reference/android/view/View.html#setPadding(int,%20int,%20int,%20int)): 'button.setPadding(0,0,0,0);'これで解決できなかった場合は、 ViewHolderの[Maginsのレイアウトパラメータ](https://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html) – Bonatti