web-dev-qa-db-ja.com

LinearLayout(Android)のボタン間のスペースを削除します

Androidアプリケーションで独自のツールバーを作成する必要があります。これで、次のようになります。enter image description here

したがって、ボタンの間にスペースが表示されます。ボタンにマイナスの余白/パディングを入れてみましたが、スペースが消えませんでした。

レイアウトコードは次のとおりです。

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

    <ListView
        Android:id="@+id/routes_list"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        Android:layout_weight="0.5">
    </ListView>

    <TableRow
        Android:id="@+id/toolbar"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:layout_margin="0dp"
        Android:padding="0dp" >

        <Button
            Android:id="@+id/btn_routes"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:layout_margin="0dp"
            Android:layout_weight="0.2"
            Android:layout_marginRight="-10dp"
            Android:layout_marginLeft="-10dp"
            Android:text="@string/routes"
            Android:textSize="10dp" />

        <Button
            Android:id="@+id/btn_places"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:layout_margin="0dp"
            Android:layout_weight="0.2"
            Android:layout_marginRight="-10dp"
            Android:layout_marginLeft="-10dp"
            Android:textSize="10dp"
            Android:text="@string/places" />

        <Button
            Android:id="@+id/btn_events"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:layout_margin="0dp"
            Android:layout_weight="0.2"
            Android:layout_marginRight="-10dp"
            Android:layout_marginLeft="-10dp"
            Android:textSize="10dp"
            Android:text="@string/events" />

        <Button
            Android:id="@+id/btn_about"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:layout_margin="0dp"
            Android:layout_weight="0.2"
            Android:layout_marginRight="-10dp"
            Android:layout_marginLeft="-10dp"
            Android:text="@string/about"
            Android:textSize="10dp" />

    </TableRow>

</LinearLayout>

ボタン間のスペースを削除するにはどうすればよいですか?

13
Ilya Blokh

これが解決策です。ここに質問を急いで投稿したようです。

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

    <ListView
        Android:id="@+id/routes_list"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        Android:layout_weight="0.5">
    </ListView>

    <TableRow
        Android:id="@+id/toolbar"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content" 
        Android:layout_marginBottom= "-7dp">

        <Button
            Android:id="@+id/btn_routes"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:layout_weight="0.2"
            Android:layout_marginRight="-4.5dp"
            Android:layout_marginLeft="-5dp"
            Android:text="@string/routes"
            Android:textSize="10dp" />

        <Button
            Android:id="@+id/btn_places"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:layout_weight="0.2"
            Android:layout_marginRight="-4.5dp"
            Android:layout_marginLeft="-4.5dp"
            Android:textSize="10dp"
            Android:text="@string/places" />

        <Button
            Android:id="@+id/btn_events"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:layout_weight="0.2"
            Android:layout_marginRight="-4.5dp"
            Android:layout_marginLeft="-4.5dp"
            Android:textSize="10dp"
            Android:text="@string/events" />

        <Button
            Android:id="@+id/btn_about"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:layout_weight="0.2"
            Android:layout_marginRight="-4dp"
            Android:layout_marginLeft="-4.5dp"
            Android:text="@string/about"
            Android:textSize="10dp" />

    </TableRow>

</LinearLayout>

結果: enter image description here

9
Ilya Blokh

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

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

Android:background = "#000"

22
Sami
I won't suggest to go for -ve margins..

むしろ、ボタンの背景画像を設定します。

いくつかの重要なポイント:-

  1. 背景画像自体には、境界線に空白を含めないでください。
  2. 背景を指定した後、そのボタンのセレクターファイルを作成する必要があります。このファイルには、ボタンのさまざまな状態で表示する画像を記述します。同様にselectedfocusedなど。デフォルトで表示される効果を確認できます(銀色のボタンのように、クリックするとオレンジ色になります)

解決策:-

  1. 参照できるセレクターの作成方法 this lik
  2. 私は使用しました 私の場合はこのボタン

私の結果:-

enter image description here

1
DeltaCap019

簡単に言うと、デフォルトの背景を丸みを帯びた形状とマージンでオーバーライドすることでそれを行うことができます。

<Button
            Android:id="@+id/button_1"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:layout_weight="1"
            <!--Replace the following color with any other color or drawable-->
            Android:background="@Android:color/white"
            Android:text="@string/button1_text"
            Android:textColor="@Android:color/black" />
0
Sami Eltamawy

これを試して

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

    <ListView
        Android:id="@+id/routes_list"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        Android:layout_weight="0.5">
    </ListView>

    <TableRow
        Android:id="@+id/toolbar"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:layout_margin="0dp"
        Android:padding="0dp" >

        <Button
            Android:id="@+id/btn_routes"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:text="@string/routes"
            Android:textSize="10dp" />

        <Button
            Android:id="@+id/btn_places"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:textSize="10dp"
            Android:text="@string/places" />

        <Button
            Android:id="@+id/btn_events"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:textSize="10dp"
            Android:text="@string/events" />

        <Button
            Android:id="@+id/btn_about"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:text="@string/about"
            Android:textSize="10dp" />

    </TableRow>

</LinearLayout>
0
Sumant