【发布时间】:2014-03-19 21:18:08
【问题描述】:
我正在构建一个界面,我需要处理触摸事件。特别是,我将能够仅将它们启用到片段中的受限区域。 为了更好地理解问题、尊重标准和实现我的应用程序的目标,我计划了导航抽屉,它假定存在许多片段(而不是活动)。带有触摸事件的 Activity 很容易实现,另一方面,我在互联网上读到 片段可能会成为问题。
我的应用程序,在架构级别,如下所示: - MainActivity.java - NavigationDrawer.java - TestFragment.java(现在是单个fragment,等待解决问题)
我没有找到解释如何做好(或如何解决问题)的解决方案或教程。然后我问你,将问题简化为“在片段中启用触摸事件(在这种情况下为 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,该子片段 B1 链接到兄弟/对等片段 B2,我们希望 Back 在有意义的地方返回 A,而不是 B1) -
我认为这个问题的答案在这里:stackoverflow.com/questions/11001282/…
标签: android android-fragments touch-event ontouchlistener