У меня есть ListView, и есть этот стиль элементаListView эффект нажмите ребенок пункта
, когда я нажимаю на любой его части все выбранные
но я хотел бы получить отдельный эффект от Описание и Действие 1 и Действие 2
этот стиль:
Мой деталь XML
...
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/linearLayout"
android:layout_marginLeft="3dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:id="@+id/txtDescription"
android:text="description" />
<!--this is one separator horizontal -->
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/darker_gray"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:weightSum="100"
android:orientation="horizontal">
<LinearLayout android:layout_width="wrap_content"
android:layout_weight="50"
android:id="@+id/test1"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:id="@+id/txtAction1"
android:text="Action 1" />
</LinearLayout>
<!--this is one separator vertical-->
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@android:color/darker_gray" />
<LinearLayout android:layout_width="wrap_content"
android:id="@+id/test2"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="50"
android:gravity="center"
android:id="@+id/txtAction2"
android:text="Action 2" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
...
Мой класс Java
//ViewHolder
static class ViewHolderItem {
public LinearLayout test1;
public LinearLayout test2;
}
//Adapter
class RoteiroAdapter extends BaseAdapter{
private Context mContext = null;
private List<ItemRoteiro> mListaRoteiro = null;
public RoteiroAdapter(Context context, List<ItemRoteiro> lista){
this.mContext = context;
this.mListaRoteiro = lista;
}
...
...
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolderItem viewHolder;
if(convertView == null){
LayoutInflater inflater = ((Activity) mContext).getLayoutInflater();
convertView = inflater.inflate(R.layout.item_roteiro, parent, false);
viewHolder = new ViewHolderItem();
viewHolder.test1= (LinearLayout) convertView.findViewById(R.id.txtTest1);
viewHolder.test2= (LinearLayout) convertView.findViewById(R.id.txtTest2);
convertView.setTag(viewHolder);
}
else{
viewHolder = (ViewHolderItem) convertView.getTag();
}
ItemRoteiro item = mListaRoteiro.get(position);
if(item != null) {
viewHolder.test1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
viewHolder.test2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
return convertView;
}
}
Как решить эту проблему? Благодаря!!
Я пробовал использовать ** android: clickable = "false" **, но не удалось, я думаю, что использовал неправильный путь. –
Возможно, здесь есть решение, но я не могу придумать. Есть ли причина, по которой этот макет должен быть в ListView вместо ScrollView? Если бы это было в ScrollView, я думаю, что это становится гораздо более простой проблемой. – joebro
Спасибо @joebro, я посмотрел эту [ссылку] (http://stackoverflow.com/questions/6763876/onclick-not-triggered-on-linearlayout-with-child), но это не сработало для меня. Я думал о том, чтобы использовать listview в том, что информация будет загружена в базу данных, это не будет количество «исправлено» –