web-dev-qa-db-ja.com

Androidのボタンの周りのパディングを削除するにはどうすればよいですか?

Androidアプリには、次のレイアウトがあります。

<?xml version="1.0" encoding="utf-8" ?> 
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android" 
      Android:layout_width="match_parent" 
      Android:layout_height="match_parent" 
      Android:orientation="vertical">

    <fragment
         Android:id="@+id/map"
         Android:layout_width="match_parent"
         Android:layout_height="0dp" 
         Android:layout_weight="1" 
         class="com.google.Android.gms.maps.SupportMapFragment"/>

    <Button
        Android:id="@+id/button_back"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:onClick="CloseActivity"
        Android:padding="0dp"
        Android:text="@+string/back" />

</LinearLayout>

プレビューおよび電話では、次のようになります。

下の領域のボタンでわかるように、そこにはいくつかのパディングがあります。

どうすればそれを取り除き、ボタンが下の領域を完全に埋めることができますか?

135
omega

私にとって問題は、いくつかのAndroidテーマのminHeightとminWidthであることが判明しました。

Button要素で、次を追加します。

<Button Android:minHeight="0dp" Android:minWidth="0dp" ...

または、ボタンのスタイルで:

<item name="Android:minHeight">0dp</item>
<item name="Android:minWidth">0dp</item>
354
D. A. Terre

それはパディングではなく、背景のドロアブルのボタンの周りの影です。独自の背景を作成すると、消えます。

41
Delyan

回避策は、次のようなマージンに-ve値を使用しようとすることです。

<Button
    Android:id="@+id/button_back"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:onClick="CloseActivity"
    Android:padding="0dp"
    Android:layout_marginLeft="-5dip"
    Android:layout_marginRight="-5dip"
    Android:layout_marginTop="-5dip"
    Android:layout_marginBottom="-5dip"
    Android:text="@string/back" />

それはそのスペースを消滅させます。適切なdipの値を選択することができます。それは私のために働いた。それがあなたのために働くことを願っています。

21
Shobhit Puri

トグルボタンの周囲のパディングを削除するには、minWidthおよびminHeight 0dp .Android:minWidth="0dp" Android:minHeight="0dp"を設定する必要があります

  <ToggleButton
        Android:id="@+id/toggle_row_notifications"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:minWidth="0dp"
        Android:minHeight="0dp"
        Android:layout_alignParentRight="true"
        Android:layout_centerVertical="true"
        Android:padding="@dimen/_5sdp"
        Android:textOn=""
        Android:textOff=""
        Android:background="@Android:color/transparent"
        Android:button="@drawable/toggle_selector"
        />

次のようなボタン属性に描画可能ファイルを設定します:Android:button="@drawable/toggle_selector"

以下は私のtoggle_selecter.xmlファイルです

<?xml version="1.0" encoding="utf-8"?>
     <selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
            <item Android:drawable="@drawable/notifications_toggle_on" 
                  Android:state_checked="true"/>
            <item Android:drawable="@drawable/notifications_toggle_off" 
                  Android:state_checked="false"/>
     </selector>
11
Yashoda Bane

私はAndroidが初めてですが、同様の状況がありました。 @Delyanが提案したことを実行し、xmlレイアウトファイルでAndroid:background = "@ null"も使用しました。

8
Casey Murray

私は同じ問題を抱えていましたが、それはボタンの背景色が原因であるようです。背景色を別の色に変更してみてください。例:

Android:background="@color/colorActive"

動作するかどうかを確認します。ボタンを使用する場合は、スタイルを定義できます

6
Panagiotis

ボタンのXMLセットでAndroid:includeFontPadding="false"

6
user1005462

それはパディングではなく、または背景のドロアブルの影、またはminHeightminWidthの問題です。

それでも素敵な波紋の効果が必要な場合は、?attr/selectableItemBackgroundを使用して独自のボタンスタイルを作成できます。

<style name="Widget.AppTheme.MyCustomButton" parent="Widget.AppCompat.Button.Borderless">
    <item name="Android:minHeight">0dp</item>
    <item name="Android:minWidth">0dp</item>
    <item name="Android:layout_height">48dp</item>
    <item name="Android:background">?attr/selectableItemBackground</item>
</style>

そして、ボタンに適用します:

<Button 
    style="@style/Widget.AppTheme.MyCustomButton"
    ... />
4
Allan Veloso

ボタンでminHeightおよびminWidth属性を使用し、paddingの使用を確認する必要があります

    Android:minHeight="0dp"
    Android:minWidth="0dp"
3
viper

パディング、マージン、または最小高さ/幅ではないようです。 Android:background="@null"を設定すると、ボタンのタッチアニメーションは失われますが、背景をすべてに設定すると、その境界が修正されます。


私は現在、以下で働いています:

minSdkVersion 19
targetSdkVersion 23
2
juil

ボタンにカスタム背景を付けます:@ drawable/material_btn_blue

0
Mike6679

layout_width(height)パラメーターを使用して行うこともできます。

例えば。 Android:layout_height="18dp"コードで上部と下部のスペースを削除しました。

0
EAMax