1

2 つの を含むいくつかのLinearLayoutオブジェクトを含むオブジェクトがありますTextView。残念ながら、それらの間に大きなスペースがあり、その理由はわかりません.

自分で見る (コンテンツ フレームと#642954 - 14/25/9814モノの間):

http://i.stack.imgur.com/832QN.png

これが私のコードです:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >

    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:contentDescription="@string/smiley"
        android:padding="10dp"
        />

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:includeFontPadding="false"
        >

        <TextView android:id="@+id/contenu"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:background="@drawable/round"
             android:padding="10dp"
             android:layout_margin="5dp"
             android:includeFontPadding="false"
             android:layout_marginBottom="-10dp"
             />


        <TextView android:id="@+id/infos"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:gravity="right"
             android:layout_margin="5dp"
             android:includeFontPadding="false"
             android:padding="0dp"
             android:layout_marginTop="-10dp"
             />

    </LinearLayout>

</LinearLayout>

ここにあるround.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#20000000" />

            <corners android:radius="13dp" />
        </shape>
    </item>
    <item android:bottom="2px">
        <shape xmlns:android="http://schemas.android.com/apk/res/android" >
            <solid android:color="#FFFFFF" />

            <corners android:radius="13dp" />

            <stroke
                android:width="1dp"
                android:color="#BBBBBB" />
        </shape>
    </item>

</layer-list>

私たちを手伝ってくれますか?

ありがとう!

4

3 に答える 3

6

android:includeFontPadding="false"

于 2013-10-15T02:06:09.923 に答える
2

ダメダメダメ。負のマージンを使用すると、動作が規定されていない可能性があります (おそらく Android OS のバージョンによって異なります)。API 8 でこれをテストしましたが、負のマージンは機能しません。代わりに、次のように、すべてのマージンをカスタムの負でない値に設定します。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >

    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:contentDescription="@string/smiley"
        android:padding="10dp"
        />

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:includeFontPadding="false"
        >

        <TextView
            android:id="@+id/contenu"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginBottom="0dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="5dp"
            android:background="@drawable/round"
            android:includeFontPadding="false"
            android:padding="10dp"
            android:text="" />

        <TextView
            android:id="@+id/infos"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginBottom="5dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="0dp"
            android:gravity="right"
            android:includeFontPadding="false"
            android:padding="0dp"
            android:text="" />

    </LinearLayout>

</LinearLayout>

5dpここでは、次を除くすべてのマージンを設定しました。

  • contenuの下マージン:0dp
  • infos' トップマージン:0dp

そして出来上がり、すべてのスペースがなくなりました。好みに合わせて設定し、 first と second の間のギャップを調整しますTextView

編集

上記で書いた特定されていない動作について、SDK ソースを確認しました。

子の余白を指定する場合LinearLayout、2 つのオプションがあり、そのうちの 1 つを選択する必要があります。

  1. プロパティを設定marginします。これにより、すべてのサイド マージンが実質的に の値に設定されますmargin注意:このオプションには優先順位があります。つまり、負でmarginない値を設定すると、サイド マージンに個別に設定した値が無視されます。
  2. 各辺の余白を個別に設定します。

/値marginが事実上無視される原因となったグローバル値を設定していました。marginTopmarginBottom

于 2013-01-14T21:58:21.700 に答える
1

等間隔でこれを試してください

   <TextView android:id="@+id/contenu"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:background="@drawable/round"
             android:padding="10dp"
             android:layout_margin="5dp"
             android:includeFontPadding="false"
             android:layout_marginTop="5dp"
             />


        <TextView android:id="@+id/infos"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:gravity="right"
             android:layout_margin="5dp"
             android:includeFontPadding="false"
             android:padding="0dp"
             android:layout_marginTop="5dp"
             />
于 2013-01-14T21:32:45.977 に答える