我有一個與ListView
的每一行的多個元素如下:點擊事件沒有被捕獲的ListView項與HorizontalScrollView
list_element.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/global_container"
android:descendantFocusability="blocksDescendants"
android:layout_width="match_parent"
android:layout_height="match_parent">
<HorizontalScrollView
android:id="@+id/scrollview"
android:clickable="true"
android:focusable="false"
android:focusableInTouchMode="false"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none">
Fragment1.java
被充氣包含佈局包含上述元素的列表視圖。
我需要能夠捕獲每個項目的點擊事件來改變元素的顏色,當單擊項目和單擊另一個項目時,將其恢復爲其原始顏色,因爲新項目更改元素顏色等上。
這意味着,我試圖捕捉OnItemClickListener
內Fragment1.java
:
if (rootView != null) {
myList = (ListView) rootView.findViewById(R.id.my_list);
}
ArrayList l = new ArrayList();
//Bogus list
for (int i=0; i<20; i++) {
l.add(new Object());
}
adapter = new MyListAdapter(l, getActivity());
myList.setAdapter(adapter);
final MyListAdapter ad = adapter;
myList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View arg1, int position, long id) {
ad.setClickedPosition(position);
ad.notifyDataSetChanged();
}
});
但(我認爲)所有的HorizontalScrollView
觸摸事件被捕獲點擊/觸摸......事件,我沒有得到任何迴應。正如你所看到的,我嘗試了android:descendantFocusability="blocksDescendants"
,並且沒有任何結果來回改變可聚焦性。
我也試圖捕捉名單轉接器內不同的事件:
vi = inflater.inflate(R.layout.list_element, null, true);
vi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("aaa", "aaa");
}
});
和/或
horizontalScroll = vi.findViewById(R.id.scrollview);
horizontalScroll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("aaa", "aaa");
}
});
兩個選項都沒有任何結果。然後,我應該如何捕獲列表中某個項目的點擊事件並保持能夠與HorizontalScrollView
一起使用?
感謝您的回覆,但沒有奏效,這是它原來的樣子。 – Carlos