1. ホーム
  2. android

[解決済み] 標準的なBorderlessボタン(デザインガイドラインにあるような)を作成するには?

2022-09-03 13:43:21

質問

デザインガイドラインを確認したところ、ボーダーレスボタンについて気になることがありました。 ソースで探してみましたが、自分ではまとまりません。 これは通常のボタンウィジェットですが、カスタム (Android デフォルト) のスタイルを追加しているのでしょうか。 このボーダーレスボタンを作るにはどうしたらいいのでしょうか(もちろん背景を空にすることはできますが、そうすると仕切りがありません)。

デザインガイドラインへのリンクはこちらです。

どのように解決するのですか?

いくつかの混乱を解消するために。

これは2つのステップで行われます。ボタンの背景属性を android:attr/selectableItemBackgroundに設定します。 を設定すると、フィードバックはあるが背景がないボタンが作成されます。

android:background="?android:attr/selectableItemBackground"

ボーダーレスボタンを他のレイアウトから分離するための線は、背景が android:attr/dividerVerticalのビューによって行われます。

android:background="?android:attr/dividerVertical"

より良く理解するために、画面下部のOK/Cancelボーダーレスボタンの組み合わせのレイアウトを示します(上の右の写真のように)。

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:layout_alignParentBottom="true">
        <View
            android:layout_width="match_parent"
            android:layout_height="1dip"
            android:layout_marginLeft="4dip"
            android:layout_marginRight="4dip"
            android:background="?android:attr/dividerVertical"
            android:layout_alignParentTop="true"/>
        <View
            android:id="@+id/ViewColorPickerHelper"
            android:layout_width="1dip"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="4dip"
            android:layout_marginTop="4dip"
            android:background="?android:attr/dividerVertical" 
            android:layout_centerHorizontal="true"/>
        <Button
            android:id="@+id/BtnColorPickerCancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_toLeftOf="@id/ViewColorPickerHelper"
            android:background="?android:attr/selectableItemBackground"
            android:text="@android:string/cancel" 
            android:layout_alignParentBottom="true"/>
        <Button
            android:id="@+id/BtnColorPickerOk"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:background="?android:attr/selectableItemBackground"
            android:text="@android:string/ok" 
            android:layout_alignParentBottom="true" 
            android:layout_toRightOf="@id/ViewColorPickerHelper"/>
    </RelativeLayout>