모든 항목이 텍스트보기 및 사용자 정의보기 인 목록보기가 있습니다.listview의 모든 항목에 동일한 모션 이벤트를 전달하려면 어떻게해야합니까?
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<net.manualuser.calibr.TimeScale
android:id="@+id/my_scale"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="20dp"
android:paddingTop="40dp">
<TextView
android:id="@+id/counter"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
척도 여기 통치자를 그립니다 수평 스크롤을 처리하는 사용자 지정보기입니다 : 여기에 목록보기 항목의 레이아웃입니다.
동일한 모션 이벤트를 모든 항목의 눈금자로 전달하여 목록에서 하나를 스크롤 할 때 다른 사람들이 동시에 스크롤하도록합니다.
어댑터에서 리스너를 사용자 정의보기로 설정하십시오. 다음은 getView 부분입니다.
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View v = view;
if(view == null) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.time_scale_item, viewGroup, false);
}
scale = (TimeScale)v.findViewById(R.id.my_scale);
scale.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
scale.onTouchEvent(event);
return false;
}
});
TextView text = (TextView)v.findViewById(R.id.counter);
text.setText(Cities.get(i));
return v;
}
내 활동 목록에서 내 목록을 찾아 어댑터를 설정합니다. listview에 4 개의 항목이 있다고 가정 해 보겠습니다. 그러나 2 개만 동시에 움직입니다. 동일한 모션 이벤트를 모든 통치자에게 전달하는 적절한 방법은 무엇입니까?
이 부분적으로 작동합니다. 두 항목의 목록에서 두 번째보기에도 ontouchlistener가 설정되어 있지 않은 것처럼 첫 번째 항목을 스크롤하면 두 번째 항목이 움직이지만 반대로는 표시되지 않습니다. 그러나 목록에 세 개의 항목이있는 경우 한 쌍, 세 쌍, 세 쌍, 한 번만 스크롤 할 수 있습니다. –