Я сделал линейный макет, на котором я добавляю представления, имитируя таблицу, потому что я прочитал, что просмотр списка внутри просмотра прокрутки не вариант :) Так что у меня есть линейный макет с wrap_content внутри просмотра прокрутки.
Проблема в том, что при добавлении представлений, которые я добавляю, я не могу вызвать какое-либо состояние пресса, чтобы изменить графику, как раньше, когда оно было в просмотре списка, оно работало отлично.
У меня есть следующее:
if (arrayWorksWith.size()!=0)
{
this.listAdapter = new WorksWithListAdapter(this, R.layout.works_with_cell, R.id.lblItemTitle, arrayWorksWith);
for (int i=0; i<arrayWorksWith.size(); i++)
{
View v = this.listAdapter.getView(i, null, layoutTblWorksWith);
v.setTag(new Integer(1000 + arrayWorksWith.get(i).getId()));
v.setOnClickListener(this);
layoutTblWorksWith.addView(v);
}
}
Проблема в том, что событие click срабатывает, но у меня нет визуальной обратной связи.Внутри этого представления у меня есть ImageView с заданным фоном для рисования:
<?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/r1" /> <!-- pressed -->
<item android:state_focused="true" android:drawable="@drawable/r1" /> <!-- focused -->
<item android:drawable="@drawable/transparent_background" /> <!-- default -->
</selector>
Также я только что попробовал сенсорный прослушиватель на добавляемом мною представлении, но это тоже не получается: (*
v.setOnTouchListener(new OnTouchListener()
{
public boolean onTouch (View v, MotionEvent event)
{
TextView lblCategoryTitle = (TextView)v.findViewById(R.id.lblItemTitle);
if(event.getAction() == MotionEvent.ACTION_DOWN)
{
lblCategoryTitle.setTextColor(R.color.white);
}
else if (event.getAction() == MotionEvent.ACTION_UP)
{
lblCategoryTitle.setTextColor(R.color.textLabel_blue);
}
return false;
}
});
Поэтому, когда этот код находился внутри ListView, когда я нажимал на ячейку, изображение меняло фон, давая визуальную обратную связь, но когда я его сейчас создаю и добавляю в LinearLayout, оно перестало работать.
Есть идеи? Я пытался поиграть с фокусируемым, кликабельным, дублирующим родительским состоянием, но безуспешно.