Ich habe eine Listenansicht, wo jedes Element Textansicht und benutzerdefinierte Ansicht ist. Hier ist das Layout Listenansicht Artikel:Wie kann ich dasselbe Bewegungsereignis an alle Elemente in Listview übergeben?
<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>
Timescale hier ist eine benutzerdefinierte Ansicht, die ein Lineal zieht und horizontales Scrollen abwickelt.
Ich möchte dasselbe Bewegungsereignis an das Lineal jedes Elements übergeben, so dass, wenn ich eins von der Liste scrolle, andere gleichzeitig scrollen.
In Adapter ich Listener auf benutzerdefinierte Ansicht eingestellt. Hier ist getView Teil:
@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;
}
In Main Activity finde ich meine Liste und set Adapter zu. Angenommen, ich habe 4 Einträge in der Listenansicht. Aber nur 2 bewegen sich gleichzeitig. Was ist eine geeignete Methode, um das gleiche Bewegungsereignis an alle Lineale in der Liste zu übergeben?
Es funktioniert zum Teil. In der Liste von zwei Elementen, wenn ich die erste scrolle, bewegt sich die zweite auch, aber nicht umgekehrt, als ob in der zweiten Ansicht kein ontouchlistener gesetzt wäre. Wenn jedoch drei Einträge in einer Liste vorhanden sind, werden sie paarweise angezeigt: eins-drei, zwei-drei und der letzte scrollt nur sich selbst. –