【问题标题】:Swiping back to an activity API 17滑回活动 API 17
【发布时间】:2023-04-02 14:52:01
【问题描述】:

所以我有一个正在构建的应用程序,它有一个由 3 个片段组成的主屏幕。我有那些片段在彼此之间很好地滑动。我正在尝试在右侧滑动上实现设置菜单。因此,用户将滑动到正确的片段,然后从那里按一个按钮将它们进一步带入树中。

此时我按下此按钮创建一个新活动,并使用 overridePendingTransition() 来创建滑入的感觉。

我现在遇到的问题是允许用户在不按下按钮的情况下“向后”滑动。我希望他们能够按下按钮前进并滑动返回。这是为了在应用程序中流动。

基本上:

Main Fragment --right swipe--> settingsFragment ---buttonPress--> Submenu Activity ---buttonPress--> Sub/Sub menu

然后从孩子那里返回

这是我现在拥有的示例:

这是来自 settingsFragment 类

    Button accounts = (Button) v.findViewById(R.id.buttonAccounts);
    accounts.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View view){
            Intent k = new Intent(getActivity(), Accounts.class);       
            getActivity().startActivity(k);
            getActivity().overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
        }

    });

从帐户类中,我希望能够在不按下按钮的情况下向后滑动。

另外,因为这会回到片段,这会是一个问题吗?当我在活动之间旅行时,此实施是否会改变?我正在设置树的下方进行进一步操作。

请帮忙

谢谢

安迪

【问题讨论】:

标签: android api android-fragments android-activity swipe


【解决方案1】:

覆盖 Activity 的内置 onTouchEvent 方法。

private static final int SWIPE_THRESHOLD = 100;
private float _downX;

@Override
public boolean onTouchEvent(MotionEvent evt) {
    switch(evt.getAction()) {
        case MotionEvent.ACTION_DOWN:
            _downX = evt.getX();
        case MotionEvent.ACTION_UP:
            float deltaX = evt.getX() - _downX;

            if(Math.abs(deltaX) > SWIPE_THRESHOLD && deltaX < 0)
                onLeftSwipe();
    }

    return true;
}

【讨论】:

  • 这将在新的活动类中实现对吧?我实际上在哪里“回去”。对不起,如果这是一个愚蠢的问题。
  • 您在 onLeftSwipe 方法中“返回”,是的,它必须在活动或视图中实现(我认为 Fragments 没有 onTouchEvent 方法)。
  • 所以我尝试了这段代码并添加了 public void onLeftSwipe(){ finish();} 并且它什么也没做......我正在模拟器中测试......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2013-08-18
  • 2015-11-09
  • 1970-01-01
  • 2023-03-17
相关资源
最近更新 更多