我正在构建一个界面,需要处理触摸事件。特别地,我希望能够仅将其启用于碎片中的受限区域。
为了更好地理解问题、遵守标准并实现应用目标,我计划使用导航抽屉来管理许多碎片而非活动。实现具有触摸事件的活动相当容易,但是我在网上阅读到对于碎片可能会出现问题。
我的应用程序在架构层次上如下: - 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)
}
}
如何将监听器与整个片段关联?在特定区域的情况下呢?最后,如何返回屏幕上的压力值?
非常感谢您的帮助! :)
class MainActivity extends Activity
,以及许多 Fragments。我们遇到的一个主要问题是:我们无法使片段的导航堆栈(又称后退堆栈)按照我们想要的方式工作(我认为 iOS 做得更好),因此我们最终在自己的代码中管理片段和后退按钮。也就是说,我们跟踪片段,并且当后退按钮被按下时,自己决定要返回哪里。(如果片段 A 链接到子片段 B1,B1 又链接到同级/同辈片段 B2,在某些情况下,我们希望后退返回到 A,而不是 B1) - ToolmakerSteve