как отключить сенсорный экран в телефоне Android? - PullRequest
2 голосов
/ 03 марта 2010

при отображении индикатора выполнения я хочу отключить сенсорный экран, чтобы ограничить другие функции в телефоне Android.

Может ли кто-нибудь подсказать мне, как этого добиться?

любая помощь будет оценена.

1 Ответ

5 голосов
/ 03 марта 2010

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, как только у вас это получится, так как вы спамите себя сотнями строк журнала после каждого жеста; они только для того, чтобы понять, что происходит.

...