web-dev-qa-db-ja.com

Android:水平線形レイアウトの2つのボタンの間にスペースがないようにする方法

以下のようにlayout_marginRightlayout_marginLeftを設定しても、2つのボタン間のスペースを削除できないことがわかりました。しかし、10 dpのようにスペースを大きく設定することは意味があります。それを解決する方法はありますか?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:orientation="horizontal" Android:padding="0dp"
    Android:layout_height="wrap_content" Android:gravity="fill_horizontal" Android:layout_margin="0dp">
    <Button Android:id="@+id/LocationTitleButton"
                    Android:layout_width="wrap_content" 
                    Android:layout_height="wrap_content"
                    Android:layout_marginRight="0dp"
                    Android:layout_gravity="center_vertical" 
                    Android:layout_weight="1"
                    Android:ellipsize="end" 
                    Android:gravity="center_vertical"
                    Android:scrollHorizontally="true" 
                    Android:singleLine="true"
                    Android:text="Add location" 
                    Android:textStyle="bold" />
                <Button Android:textColor="#FF000000" 
                    Android:layout_weight="0" 
                    Android:id="@+id/AddLocationButton" 
                    Android:text="Search" 
                    Android:gravity="center_vertical"
                    Android:layout_gravity="center_vertical" 
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content" 
                    Android:layout_marginLeft="0dp" />
</LinearLayout>
17
George_BJ

ブライアンの答え を見てください。私の答えでは、両方のボタンが重なります。ブライアンズの答えは、ボタンの実際のサイズを示しています。

古い答え:

最初のボタンのAndroid:layout_marginRight"-8dip"以上に設定するだけです。 2つのボタンの間のスペースが小さくなります。

43

Androidにネイティブなボタンのデフォルトインターフェースは実際にはサイズより小さく、見栄えを良くするために中央にフィットしているため、ボタンの色を変更してみてください。

背景を黒などに変更すると、ボタンの実際のサイズが表示されます。

Android:background="#000"
32
Bryan P

RelativeLayoutに切り替えることができます。そのレイアウトにはスペースがありません。

3
Raz

Android:layout_marginRight="0dip"を設定する必要があり、他のボタンのAndroid:paddingRight="0dip"によるパディングを削除して、左の値に変更する必要があります。すべてのAndroid要素には通常、デフォルトでパディングが追加されていることを忘れていたようです。これは通常は良い考えですが、削除したい場合はこれが方法です。

1
Darokthar

代わりにTableLayoutを使用すると、スペースを取り除くことができると思います。また、マージンの間にデフォルトのスペースを追加する場合は、マージンに負の値を設定できます。

0
Genia S.

「layout_marginLeft」と「layout_marginRigh」を使用して背景ボタンを塗りつぶします

<LinearLayout
    Android:layout_width="fill_parent"
    Android:layout_height="0dp"
    Android:layout_weight="1"
    Android:gravity="bottom"
    Android:orientation="horizontal" >

    <Button
        Android:id="@+id/imageButton1"
        Android:layout_width="0dp"
        Android:layout_height="match_parent"
        Android:layout_marginBottom="-5dp"
        Android:layout_marginLeft="-3dp"
        Android:layout_marginRight="-4dp"
        Android:layout_weight="1"
        Android:drawableTop="@drawable/create_mail" />

    <Button
        Android:id="@+id/bItem"
        Android:layout_width="0dp"
        Android:layout_height="match_parent"
        Android:layout_marginBottom="-5dp"
        Android:layout_marginLeft="-4dp"
        Android:layout_marginRight="-4dp"
        Android:layout_weight="1"
        Android:drawableTop="@drawable/email_receive3"
        Android:onClick="OnClick"
        Android:text="@string/inbox" />


    <Button
        Android:id="@+id/imageButton2"
        Android:layout_width="0dp"
        Android:layout_height="match_parent"
        Android:layout_marginBottom="-5dp"
        Android:layout_marginLeft="-4dp"
        Android:layout_marginRight="-3dp"
        Android:layout_weight="1"
        Android:drawableTop="@drawable/email_trash" />


</LinearLayout>
0
Mi.HTR