2012-01-28 12 views
1

各行にグラデーションを追加します。私がしようとしたことは、この属性、android:background = "@ drawable/mygradient"をリストビューラベルに貼り付けることです。しかし、私が得るのは、この勾配がリスト全体に表示されているということです。私が欲しいのは、この勾配を各項目ごとに表示することです。Android:ListViewは各行にグラデーションを追加します

アンドロイド:代わりにbackgroundプロパティを設定する事前

+0

カスタムリストビューを使用しましたか?コードを試してみると回答が得られ、コードを投稿してください – Abhi

+0

リストに沿って表示されています。どう見ていますか?スクリーンショットを投稿できますか? –

答えて

1

"描画可能/ list_selector_background @" あなたはあなたのためのカスタムアダプタを提供することができますリストビューを開き、そのグラデーションを背景としてgetViewメソッドで設定します。このような何か:

public class MyAdapter extends BaseAdapter { 
    List<MyDataType> myData; 
    Context context; 

    public MyAdaptor(Context ctx, List<MyDataType> myData) { 
     this.myData = myData; 
     this.context = ctx; 
    } 

    public int getCount() { return myData.size() }; 
    public Object getItem(int pos) { return myData.get(pos); } 
    public long getItemId(int pos) { return 0L; } 

    public View getView(int pos, View convertView, ViewGroup parent) { 
     //this is where you can customise the display of an individual 
     //list item by setting its background, etc, etc. 

     ... 

     //and return the view for the list item at the end 
     return <List item view>; 
    } 
} 

は、その後、あなたのリストのためのアダプタとしてこのアダプタを設定することができます。今すぐ

ListView myList = <initialise it here> 
myList.setAdapter(new MyAdapter(getContext(), listData); 

リスト項目が表示される必要があるとき、getViewメソッドが呼び出されます、どこ」バックグラウンドの設定を含む、必要なディスプレイのカスタマイズをすべて実行します。

+0

それは私に2日を要したが、結局私はそれをすることができた。私はカスタムアダプターに慣れていないので難しかったです。とにかく、あなたの助けをありがとうございました。とても役に立ちました。 – user1139368

+0

そして1年以上後には答えとしてまだマークされていません= –

0

おかげで以下のように、リストのセレクタを設定listSelectorは=

+0

これは、アイテムが選択されている場合にのみ機能します。 – sdasdadas

関連する問題