2

この質問が何度も聞かれたことは知っていますが、私が見ることができるすべての解決策を見てきましたが、どれもうまくいきませんでした. 相対レイアウト内にテキストビューがあります。textview には、機能しない height : fill_parent 属性があります。駄洒落は、この相対レイアウトの他のいくつかのテキストビューであり、これを除いてすべて親を埋めることができます。XML は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/customshape"
    android:orientation="horizontal" >
    <TextView
        android:id="@+id/mainlistdescription"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:scrollHorizontally="true"
        android:maxLines="4"
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@+id/mainlistquantite"
        android:layout_gravity="center_vertical"
        android:textSize="12sp"
        android:padding="10dp"
         />
<TextView
        android:id="@+id/mainlistquantite"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:maxLines="4"
        android:layout_toLeftOf="@+id/consultaffichelayoutdroit"
        android:textSize="12sp"
        android:padding="10dp"
         />
<TextView
        android:id="@+id/consultafficheseparator" <!-- the one not working-->
        android:layout_width="2dp"
        android:layout_height="fill_parent"
        android:layout_toLeftOf="@+id/imageView1"
        android:background="#777777"
        android:maxWidth="2dp" />
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="15dp"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:gravity="center_vertical|right"
        android:src="@drawable/fleche" /> 
    <LinearLayout
        android:id="@+id/consultaffichelayoutdroit"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_toLeftOf="@+id/consultafficheseparator"
        android:orientation="vertical"
        android:paddingLeft="5dp"
         >
        <TextView
            android:id="@+id/mainlistnumero"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_gravity="right"
            android:layout_marginRight="10dp"
            android:layout_weight="1"
            android:textSize="12sp"
            android:textStyle="bold" />
        <TextView
            android:id="@+id/mainlistprix"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_gravity="right"
            android:layout_marginRight="10dp"
            android:layout_weight="1" />
    </LinearLayout>
</RelativeLayout>

ここに私が得るものがあります:ここに画像の説明を入力

灰色のバーは最後まで表示されるはずですが、実際にエミュレーターで実行している場合は表示されません (Eclipse ツールでは表示されます)。

この xml は実際にはリスト ビューで呼び出されるため、JAVA コードを使用して問題を解決することはできないようです。そのため、解決策は理想的には XML ファイルにあります。私はこれまでに android:clipChildren="false" を試してみましたが、成功せず、XML 内の要素の順序を変更しただけで、さらに悪化しました。

実験の後、私は何も場所を取らないと言うことができるので、そこにはすでにビューがあるので行けないわけではなく、そこまで拡大しないだけです

それについて助けてくれてありがとう

4

7 に答える 7

3

TextView を使用してセパレータを描画するのはなぜですか? 以下のコードのような通常のビューで試してください。

また、セパレーターを説明ビューの下部に揃える必要がある場合は、次のようにlayout_alignBottom-property を使用できます。RelativeLayout

android:layout_alignBottom="@+id/mainlistdescription"

したがって、セパレーターは次のコードのようになります。

<View
     android:id="@+id/consultafficheseparator"
     android:layout_width="2dp"
     android:layout_height="match_parent"
     android:layout_toLeftOf="@+id/imageView1"
     android:layout_alignBottom="@+id/mainlistdescription"
     android:background="@color/separator_bg" />

いくつかの他のヒントの下に:

  1. 何らかのリソース ファイル (例: colors.xml) で色を定義し、レイアウト内からその色を参照することをお勧めします。特に、ListView

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <color name="separator_bg">#777777</color>
    </resources>
    

    そしてあなたのレイアウトファイルでandroid:background="@color/separator_bg"

  2. 非推奨であるため、match_parent代わりに使用してください。fill_parent

  3. android:scrollHorizontally="true"の 1 つに見えTextViewます。TextViewが編集可能な場合にのみ機能します。に収まらないためにコンテンツをスクロールしたい場合はTextView、次のコードを使用してみてください。

    android:ellipsize="marquee"
    android:marqueeRepeatLimit="marquee_forever"
    

    そしてあなたのadapter.getView()

    final TextView description = (TextView) view.findViewById(R.id.mainlistdescription);
    description.setSelected(true);
    
于 2013-06-04T14:37:33.777 に答える
0

レイアウトコードをコピーして貼り付けた後、このレイアウトを取得したため、このレイアウトのこのようなビューが表示されるのは非常に奇妙です。

あなたのソリューションは機能します。いくつかの小さな改善を行いました。これはコードのようなものですが、背景色のみが必要な場合は TextView を使用する必要はありません。代わりに View を使用できます。

<View
     android:id="@+id/consultafficheseparator"
     android:layout_width="2dp"
     android:layout_height="match_parent"
     android:layout_toLeftOf="@+id/imageView1"
     android:background="#777777"
/>

唯一の提案は、ルート レイアウトの高さ " match_parent " または dp の値を設定することです。このスクリーンショットでは「100dp」に設定しました。

スクリーンショット

于 2013-05-29T21:38:23.490 に答える
0

ちなみに意味のない同じ厄介な問題がありました。最終的に私にとってうまくいったのは、android:layout_heightin RelativeLayout タグをfill_parentこのように変更することでした

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:background="@drawable/customshape"
    android:orientation="horizontal">

お役に立てれば

于 2013-05-25T08:45:41.357 に答える
0

次のいずれか (またはすべて) を設定して、何かが変わるかどうかを確認してください。

android:maxHeight="100dp"

また

android:layout_height="100dp"

また

android:text="a"
android:textColor="#777777"

これらのオプションのいずれかがサイズを変更する場合は、私に知らせてください。適切な解決策に取り組むことができます!

于 2013-05-29T02:32:31.230 に答える
0

これはあなたがすべきことです、

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/customshape"
android:orientation="horizontal" >
<TextView
    android:id="@+id/mainlistdescription"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:scrollHorizontally="true"
    android:maxLines="4"
    android:layout_alignParentLeft="true"
    android:layout_toLeftOf="@+id/mainlistquantite"
    android:layout_gravity="center_vertical"
    android:textSize="12sp"
    android:padding="10dp"
     />
<TextView
    android:id="@+id/mainlistquantite"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:maxLines="4"
    android:layout_toLeftOf="@+id/consultaffichelayoutdroit"
    android:textSize="12sp"
    android:padding="10dp"
     />

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="15dp"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:gravity="center_vertical|right"
    android:src="@drawable/fleche" /> 
<TextView
    android:id="@+id/consultafficheseparator" <!-- this will work now -->
    android:layout_width="2dp"
    android:layout_height="fill_parent"
    android:layout_toLeftOf="@+id/imageView1"
    android:background="#777777"
    android:maxWidth="2dp" />
<LinearLayout
    android:id="@+id/consultaffichelayoutdroit"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_toLeftOf="@+id/consultafficheseparator"
    android:orientation="vertical"
    android:paddingLeft="5dp"
     >
    <TextView
        android:id="@+id/mainlistnumero"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_gravity="right"
        android:layout_marginRight="10dp"
        android:layout_weight="1"
        android:textSize="12sp"
        android:textStyle="bold" />
    <TextView
        android:id="@+id/mainlistprix"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_gravity="right"
        android:layout_marginRight="10dp"
        android:layout_weight="1" />
</LinearLayout>
</RelativeLayout>
于 2013-05-31T21:08:52.313 に答える