EDIT
Вы можете сделать это, внедрив специальное расширение ListView, которое вы установите в качестве списка для использования в вашем XML-файле. Затем в вашем CustomListView реализуйте метод onTouchEvent и вызывайте super.onTouchEvent, только если вы хотите, чтобы касание обрабатывалось списком. Вот что я имею в виду:
Имейте что-то на этот счет в файле макета, который содержит ваш список.
<com.steve.CustomListView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/start_menu_background"
android:cacheColorHint="#00000000"
android:id="@android:id/list">
</com.steve.CustomListView>
Затем создайте собственный класс, подобный этому:
public class CustomListView extends ListView {
Context mContext;
public CustomListView (Context context, AttributeSet attrs){
super(context, attrs);
mContext = context;
}
public boolean onTouchEvent(MotionEvent event){
if (event.getRawY() < 100){
Log.d("Your tag", "Allowing the touch to go to the list.");
super.onTouchEvent(event);
return true;
} else {
Log.d("Your tag", "Not allowing the touch to go to the list.");
return true;
}
}
}
Этот код позволит сенсорным событиям обрабатываться ListView только в том случае, если они находятся в верхних 100 пикселях экрана. Очевидно, замените это выражение if чем-то более подходящим для вашего приложения. Кроме того, не оставляйте в операторах Log, как только у вас это получится, так как вы спамите себя сотнями строк журнала после каждого жеста; они только для того, чтобы понять, что происходит.