Android: ListView добавляет градиент для каждой строки - PullRequest
1 голос
/ 28 января 2012

Я хочу добавить градиент для каждой строки.То, что я пытался сделать, это на ярлыке listview поставить этот атрибут, android: background = "@ drawable / mygradient".Но все, что я получаю, это этот градиент, отображаемый по всему списку.Я хочу, чтобы этот градиент отображался для каждого элемента.

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 28 января 2012

Вы можете предоставить пользовательский адаптер для представления списка и установить градиент в качестве фона в методе 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 голосов
/ 28 января 2012

Вместо установки свойства фона установите селектор списка, как показано ниже:

android: listSelector = "@ drawable / list_selector_background"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...