膨胀视图和返回键 android 或 onBackPressed()
Posted
技术标签:
【中文标题】膨胀视图和返回键 android 或 onBackPressed()【英文标题】:inflate view and back key android or onBackPressed() 【发布时间】:2013-11-28 06:48:45 【问题描述】:final View view1 = getLayoutInflater().inflate(
R.layout.activity, homescreen, false);
我们正在使用getLayoutInflater()
来扩充活动中的自定义视图。所以流程是当用户点击一个按钮时,我们删除一个视图并在同一活动中膨胀另一个视图。现在这种方法的问题是如果使用点击手机的后退键,应用程序就会停止活动。我们真正想要的是获得以前的布局。
-
有android提供的方法我们应该实现吗?
在每个视图的
SetOnKeyListner
上处理返回键
处理 onBackPressed()
的活动以查看当前打开的视图并手动扩展另一个视图
使用片段事务?
还有其他方法吗?
【问题讨论】:
【参考方案1】:我建议你使用Fragments
您可以将片段添加到后台堆栈,以便在应用中管理您的后台导航。
【讨论】:
【参考方案2】:1.有android提供的方法我们应该实现吗?
没有。尽管在 Activity 中替换视图是可以接受的,但没有方便的方法来保持视图集合并在它们之间导航。
2.在每个视图的SetOnKeyListner上处理返回键
绝对不是。
3.Handle onBackPressed() 的activity来查看当前打开的是哪个view并手动给另一个view充气
仅在绝对必要时才应处理 BACK 压力。你必须记住的是,Android 设备的用户会期望有规律的使用和感觉——偏离预期的行为太远可能会降低你的应用程序的吸引力。也就是说,根据您的应用的功能,在 Activity 级别处理 BACK 可能是可以接受的,但您仍然没有简单的方法来管理视图堆栈。
4.使用分片交易?
是的。绝对是首选方法。片段以模块化形式结合了子活动功能和视图。该操作系统还将为您处理后台堆栈,让您在编写应用程序时更加轻松。
【讨论】:
【参考方案3】:最好的方法是使用 ViewFlipper 或 Pager 实现您的逻辑,您可以在视图之间导航并通过按钮控制它们。考虑到您的情况,您可以通过触摸按钮更改视图或页面,这两个小部件都对此提供了很好的支持。
在后按期间,您可以轻松地导航回上一页,直到它到达第一个页面,然后您就可以简单地完成您的活动。
希望对您有所帮助。
【讨论】:
以上是关于膨胀视图和返回键 android 或 onBackPressed()的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Android 中的 XML 中设置膨胀视图的布局宽度、高度和重量