Я реализовал onTouchEvent (TouchEvent) в своей деятельности. Тем не менее, я хотел бы знать, какие шаги необходимы для регистрации этого в качестве события для основного вида содержимого. Я хочу установить onTouchEvent для представления, которое покрывает все пространство экрана активности. существует setContentView(), который принимает идентификатор макета. Как зарегистрировать активность в качестве приемника ontouchEvent для основного представления содержимого. Я рассматриваю findByView (activityLayoutId), чтобы получить это представление, но это не похоже на правильный или лучший способ. Благодаря
Android Как зарегистрировать OnTouchEvent для просмотра всего содержимого основной активности?
Ответ 1
Если вы ищете способ получить представление своего контента как представление после Activity#setContentView(int)
, тогда вы можете установить идентификатор на внешнем элементе макета:
android:id="@+id/entire_view"
и укажите его в методе onCreate
после setContentView
:
View view = getViewById(R.id.entire_view);
view.setOnTouchListener( ...
Ответ 2
Подобно этому (в onCreate
):
setContentView(R.layout.activity_main);
View view = findViewById(R.id.main);
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view,MotionEvent event) {
return true;
}
});
Ответ 3
Действия onCreate()
:
onCreate(){
setContentView(R.id.yourMainLayout);
View contentView = (View)findViewById(R.id.yourMainLayout);
contentView.setOnTouchListener((View.OnTouchListener)this);
}
Если кто-то не знает лучшего способа.