Android Как зарегистрировать OnTouchEvent для просмотра всего основного содержимого Activity?

Я реализовал onTouchEvent(TouchEvent) в своей деятельности. Тем не менее, я хотел бы знать, какие шаги необходимы для регистрации этого события в основном представлении "Содержание". Я хочу установить onTouchEvent для представления, которое охватывает все пространство экрана действия. есть setContentView(), который принимает идентификатор макета. Как зарегистрировать активность в качестве прослушивателя ontouchEvent для основного представления содержимого. Я рассматриваю findByView (activityLayoutId), чтобы получить это представление, но это не совсем похоже на правильный или лучший способ. Спасибо

3 ответа

Решение

Если вы ищете способ получить представление контента в виде после Activity#setContentView(int)затем вы можете установить идентификатор для самого внешнего элемента вашего макета:

android:id="@+id/entire_view"

и ссылаться на это в вашем onCreate метод после setContentView:

View view = getViewById(R.id.entire_view);
view.setOnTouchListener( ...

Как это (в 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;

                                    }
                                });

Мероприятия onCreate() метод:

onCreate(){
  setContentView(R.id.yourMainLayout);
  View contentView = (View)findViewById(R.id.yourMainLayout);
  contentView.setOnTouchListener((View.OnTouchListener)this);
 }

Если кто-то не знает лучшего способа.

Другие вопросы по тегам