Създавам интерфейс, където имам нужда да обработвам събития при докосване. По-специално, бих могъл да ги активирам само в ограничена област във фрагмент. За да разбера по-добре проблема, да спазвам стандартите и за целта на моето приложение, планирах навигационното чекмедже, което предполага наличието на много фрагменти (вместо дейности). Дейност със събития на докосване се реализира доста лесно, от друга страна прочетох в интернет, че с фрагментите може да стане проблем.
Моето приложение, на архитектурно ниво, е както следва: - MainActivity.java - NavigationDrawer.java - TestFragment.java (за един фрагмент в момента, чакащ да реши проблема)
Не намерих решение или урок, който да обяснява как да се справя добре (или как да заобиколя проблема). След това ви моля, опростявайки проблема, така че просто да „разрешите събитие за докосване във фрагмент (getPressure() в този случай)“. По-долу са някои части от кода, които могат да помогнат за разрешаването на проблема:
Тестов фрагмент
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)
}
}
Как да асоциирам слушателя към целия фрагмент? А в случай на конкретна област? И накрая, как мога да върна стойността на натиска върху екрана?
Благодаря ви много за съветите! :)
class MainActivity extends Activity
и много фрагменти. Единият основен проблем, който имахме, беше: Не можахме да накараме навигационния стек (известен още като обратен стек) за фрагментите да работи по начина, по който искахме (мисля, че iOS го направи по-добре), така че в крайна сметка управлявахме фрагментите и бутона за връщане назад сами код. Тоест, следихме фрагменти и когато натиснахме бутона за връщане назад, взехме собствено решение къде да се върнем. (Ако фрагмент A се свърже с дъщерен фрагмент B1, който се свърже с братски/равноправен фрагмент B2, искахме Back да се върне към A, а не към B1, на места, където това имаше смисъл) - person ToolmakerSteve   schedule 20.10.2016