7

リストビューアイテムを角の丸い長方形にしようとしていますが、最初の行だけが上部に角が丸くなり、残りの子リストビューアイテムは角が丸くない長方形になります。なぜこれが起こっているのか分かりません。

これが私のリストビューコードです:

<ListView
    android:id="@+id/listViewdoctorwithappointment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="7dp"
    android:layout_marginRight="7dp"
    android:layout_marginTop="10dp"
    android:minHeight="80dp"
    android:background="@drawable/customshapeduplicate"
    android:cacheColorHint="@android:color/transparent"
    android:divider="#4F94CD"
    android:dividerHeight="10dp"

    android:smoothScrollbar="true"

    android:listSelector="@drawable/selector"
    android:scrollbars="none" >
</ListView>

そして、これが私のcustomshapeeduplicatefileです:

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient android:startColor="#ffffff" android:endColor="#ffffff" 
        android:angle="270"/> 

    <corners android:bottomRightRadius="10dp" android:bottomLeftRadius="10dp" 
        android:topLeftRadius="10dp" android:topRightRadius="10dp"/> 
</shape> 

そしてこれは画像です:

ここに画像の説明を入力してください

4

3 に答える 3

4

カスタム リスト アダプターを使用することをお勧めします。要件に従って、以下のコードを変更します。

 public View getView(final int arg0, View arg1, ViewGroup arg2) {
    final ViewHolder vh;
    vh= new ViewHolder();

    if(arg1==null )
    {
                    arg1=mInflater.inflate(R.layout.lyourcustomlayouttobe inflated, arg2,false);
            arg1.setTag(vh);
            }

    return arg1;
}

カスタム レイアウト

 <?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="horizontal"
 android:cacheColorHint="#000000"
 android:background="@drawable/listviewbkg">
 //other items to be inlfated.
 </LinearLayout>

リソースの下にドローアブル フォルダーを作成します。以下のxmlをlistviewbkgとして投稿します

 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_pressed="true" 
    android:drawable="@drawable/pressed" />
 <item  android:state_focused="false" 
    android:drawable="@drawable/normal" />
 </selector>

normal.xml という名前の drawable の下で通常の場合の形状

 <?xml version="1.0" encoding="UTF-8"?> 
 <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
 <solid android:color="#FFFFFF"/>    
 <stroke android:width="3dp"
        android:color="#0FECFF" /><!-- #330000FF #ffffffff -->
 <gradient                               // remove the gradient if do not wish to use.
    android:startColor="#ffffffff" 
    android:endColor="#110000FF" 
    android:angle="90"/> 

 <padding android:left="5dp"
         android:top="5dp"
         android:right="5dp"
         android:bottom="5dp"/> 
 <corners android:bottomRightRadius="7dp"      // change this to increase the rounded edge radius
         android:bottomLeftRadius="7dp" 
         android:topLeftRadius="7dp"
         android:topRightRadius="7dp"/> 
 </shape>

drawable フォルダー内の pressed.xml という名前で押されたときの形状

  <?xml version="1.0" encoding="UTF-8"?> 
  <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
  <solid android:color="#FF1A47"/>    
  <stroke android:width="3dp"
        android:color="#0FECFF"/>
  <padding android:left="5dp"
         android:top="5dp"
         android:right="5dp"
         android:bottom="5dp"/> 
  <corners android:bottomRightRadius="7dp"
         android:bottomLeftRadius="7dp" 
         android:topLeftRadius="7dp"
         android:topRightRadius="7dp"/> 
  </shape>
于 2013-03-11T08:35:01.890 に答える
3

の背景ではなく、listviewリストcustom layoutビュー行の表示に使用しているの背景を設定します

android:background="@drawable/customshapeduplicate"
于 2013-03-11T08:26:52.710 に答える
0

これは、background属性が個々の行ではなく、リスト全体の背景であるためです。

あなたが望むものを達成するには、あなたのAdapterまたはリストアイテムのレイアウトを介してカスタムの背景を設定するか、この回答を見てください。

于 2013-03-11T08:06:40.943 に答える