浏览器或类似浏览器的应用程序中的后退和前进按钮在时间上导航(用户导航页面的顺序),这可能不一定反映页面的逻辑顺序.有没有研究关注这会如何影响用户的心理模型?有关如何提高可用性和减少混淆的任何想法?
我想知道是否可以使用导航控制器按钮返回上一页2.现在,我已经使用此代码自定义按钮
self.navigationItem.leftBarButtonItem =
[[UIBarButtonItem alloc] initWithTitle:mainLib.navCountryTitle
style:UIBarButtonItemStyleBordered
target:self
action:@selector(handleBack:)];
Run Code Online (Sandbox Code Playgroud)
在'回调'方法上,我称这行
[self.navigationController popViewControllerAnimated:YES];
所以在这种情况下,它将转到上一个屏幕.但是我想在上一个屏幕之前进入屏幕.
我知道我可以直接调用那个屏幕,但我不想这样做,因为在每个屏幕上我都有一个后退按钮,它应该转到之前的屏幕.
back-button back uinavigationbar uinavigationcontroller uinavigationitem
我有一个AsyncTask,我希望它按下后退按钮时执行.我还希望应用程序返回到之前显示的Activity.似乎我已经设法停止任务,但应用程序没有返回到上一个活动.有任何想法吗?这是我的代码摘录
private class MyTask extends AsyncTask<Void, Void, Void> implements OnDismissListener{
private boolean exception= false;
@Override
protected void onPreExecute(){
pd = ProgressDialog.show(
IscrizioniActivity.this,
"Please wait...",
"Loading the data",
true,
true,
new DialogInterface.OnCancelListener(){
public void onCancel(DialogInterface dialog) {
MyTask.this.cancel(true);
}
}
);
}
@Override
protected Void doInBackground(Void... voids) {
//do something
return (null);
}
@Override
protected void onPostExecute(Void voids) {
pd.dismiss();
//do something
}
public void onDismiss(DialogInterface dialog) {
this.cancel(true);
}
}
Run Code Online (Sandbox Code Playgroud)
问候.
如何删除当前和显示以前的片段?就像我按"后退"按钮一样
我正在使用这样的结构:
FragmentManager fm=getFragmentManager();
FragmentTransaction ft=fm.beginTransaction();
ft.remove(fragment).commit();
Run Code Online (Sandbox Code Playgroud)
但它只删除当前片段,而不显示之前的片段
我似乎与大多数SO用户有相反的问题.我有一个很少更改的静态页面,我希望浏览器在用户快速导航回来时不要重新加载该页面.我无法找到任何简单的规则列表,这些规则详细列出了浏览器在反向导航时重新加载的时间,以及当浏览器没有重新加载时.
如果它有所不同,我的URL有一个查询字符串,并使用该https://协议提供服务.
当按下后退按钮时,有没有办法阻止导航抽屉关闭?出于测试目的,我将调用onBackPressed()空
@Override
public void onBackPressed() {
}
Run Code Online (Sandbox Code Playgroud)
但导航抽屉仍然响应后退按钮并关闭.其他情况下,后退按钮没有响应,正如我所料.为了防止导航抽屉关闭,我应该覆盖什么?
目前我有一个活动,并且正在添加片段(搜索,歌曲详细信息,设置等).我实现了基于侧面的菜单导航,所以现在,作为副作用,tehre对于将多少碎片添加到Backstack没有限制.有什么方法可以限制片段数量,或删除旧条目? 例如,每首歌曲细节片段,有一个推荐的歌曲列表,并通过你可以去另一个歌曲细节片段.在Backstack中很容易有30个片段,如果你打开DDMS,你可以看到堆大小缓慢(但肯定)增加.
编辑:我尝试做的一件事是,如果用户点击其中一个侧边菜单选项,如果该片段已经在后台堆栈中尝试返回到该片段而不是实例化新片段,但当然,如果用户在歌曲详细信息页面上,然后他会期望按下它会将他带到那个片段,这样就行不通了.
编辑2:这是我的addFragment方法(以及Phil的建议):
public void addFragment(Fragment fragment) {
FragmentManager fm = getSupportFragmentManager();
if(fm.getBackStackEntryCount() > 2) {
fm.popBackStack();
}
fm.beginTransaction()
.replace(R.id.fragment_container, fragment).addToBackStack("")
.commit();
}
Run Code Online (Sandbox Code Playgroud)
我只是试了一下,假设我的片段历史是:A-> B-> C-> D,从D回来,去B-> A->退出.
我只是进了8级测试:A-> B-> C-> D-> E-> F-> G-> H,从H回来,同样的事情发生了:H-> B-> A- >退出.
所有碎片都是通过上面的方法添加的.我想看到的是:H-> G-> F->退出.
我想获得上一页的网址.我找到了很多答案,但我找不到任何适用于浏览器后退按钮的东西.我使用了document.referrer,但它也不适用于后退按钮.谁能帮我??
当Apple Watch上按下后退按钮(箭头)时,我需要在第二个视图控制器上进行一些清理.当按下后退按钮/弹出视图时,是否有任何检测/处理方法?
注意 - 我不能使用'willDeactivate()'函数,因为它让我陷入循环中我想要做的事情.
back-button uinavigationcontroller popviewcontroller ios watchkit
我想将键盘设置为始终在聊天页面中打开,并且不应通过后退按钮将其关闭。
WillPopScope() 小部件仅阻止后退按钮导航回上一页,但仍会关闭键盘。我最初通过在文本表单字段中设置 autofocus = true 来打开键盘,所以我面临的唯一问题是防止键盘消失。
我在 Stack 中查看了多个问题,但找不到合适的解决方案来解决这个问题。我已经寻找答案两个多月了,希望有人能够帮助我解决这个问题。
更新:
我对设备高度进行了以下更改,其中减去了 MediaQuery.of(context).viewInsets.bottom,现在键盘的过渡更好了。
我意识到我之前尝试修复键盘并防止其被关闭的方法需要使用 Android 的 Java 或 Kotlin 在本机级别上完成太多修复。我最初想修复键盘,因为过渡很差,但通过以下方法,现在过渡更好,但仍有改进的空间。
var heightStatusBar = MediaQuery.of(context).padding.top;
var bottom = MediaQuery.of(context).viewInsets.bottom;
widthofdevice = MediaQuery.of(context).size.width;
heightofdevice =(MediaQuery.of(context).size.height) -
heightStatusBar - bottom;
Run Code Online (Sandbox Code Playgroud) back-button ×10
android ×5
browser ×2
back ×1
dismiss ×1
flutter ×1
html ×1
ios ×1
javascript ×1
keyboard ×1
navigation ×1
reload ×1
usability ×1
watchkit ×1