Intereting Posts
Почему я получаю файл cookie SACSID из входа в Google appengine вместо ACSID? Проблема Proguard для библиотеки mupdf Содержимое приложения выходит за панель навигации в android L Android: AutoCompleteTextView показывает предложения, когда текст не вводится Как создать постоянный AlarmManager Как изменить цвет фона вкладки при использовании TabLayout? Airpush для Android – Что такое факт и какой миф? Как обновить Android ListView динамическими данными в реальном времени? Как определить ориентацию по умолчанию для кадров предварительного просмотра камеры? Android: войдите на сайт и сохраните сеанс / файл cookie, используя DefaultHttpClient Не может запускать режим отладки в студии Android Разница между каталогами / res и / assets Обновление прокрутки триггеров вместо раскрытия панели инструментов Попытка закончить входное событие, но приемник событий ввода уже был удален Верхняя / нижняя прокладка для Spinner

Как обрабатывать сенсорные события на фрагменте?

Я создаю интерфейс, где мне нужно обрабатывать события касания . В частности, я мог бы включить их только в ограниченную область в фрагменте. Чтобы лучше понять проблему, уважать стандарты и цель моего приложения, я планировал навигационный ящик, который предполагает наличие большого количества фрагментов (а не действий). Активность с сенсорными событиями выполняется довольно легко, с другой стороны, я читал в Интернете, что с фрагментами может стать проблемой .

Мое приложение на архитектурном уровне выглядит следующим образом: – MainActivity.java – NavigationDrawer.java – TestFragment.java (теперь для одного фрагмента, ожидающего решения проблемы)

Я не нашел решения или учебника, в котором объясняется, как преуспеть (или как решить проблему). Затем я прошу вас, упрощая задачу просто « включить событие касания в фрагменте (getPressure () в этом случае) ». Ниже приведены некоторые фрагменты кода, которые могут помочь решить проблему:

TestFragment

public class TestFragment extends Fragment { private static final String ARG_SECTION_NUMBER = "section_number"; public static TestFragment newInstance(int sectionNumber) { TestFragment fragment = new TestFragment(); Bundle args = new Bundle(); args.putInt(ARG_SECTION_NUMBER, sectionNumber); fragment.setArguments(args); return fragment; } public TestFragment() {} @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_test, container, false); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public boolean onTouchEvent(MotionEvent event) { // Here I want to return the press value (0 to 1) } } 

Как связать слушателя со всем фрагментом? А в случае конкретной области? Наконец, как я могу вернуть значение давления на экран?

Большое вам спасибо за советы! 🙂

Solutions Collecting From Web of "Как обрабатывать сенсорные события на фрагменте?"

Я не уверен, понял ли я вашу проблему, но я постараюсь ответить на это. Поэтому, чтобы получить сенсорные события на фрагменте, я бы сделал следующее:

– в вашем фрагменте onCreateView:

 View view = inflater.inflate(R.layout.fragment_test, container, false); view.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if(event.getAction() == MotionEvent.ACTION_MOVE){ //do something } return true; } }); //here the rest of your code return view; 

И вы можете проверить различные MotionEvents в onTouch, например:

 MotionEvent.ACTION_DOWN, MotionEvent.ACTION_UP,...