- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用以下代码在用户旋转设备时更改我的 Activity 方向。这第一次工作正常,但没有再次调用。请指正。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Log.d("ACTIVITY","CHANGING ORIENTATION"); //No i18n
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
Log.d(TAG, "ORIENTATION CHANGED TO PORTRAIT"); // No I18N
setRequestedOrientation(Configuration.ORIENTATION_PORTRAIT);
} else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Log.d(TAG, "ORIENTATION CHANGED TO LANDSCAPE"); // No I18N
setRequestedOrientation(Configuration.ORIENTATION_LANDSCAPE);
}
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
Log.d("ACTIVITY","ON RESTORE INSTANCESTATE"); //No i18n
super.onRestoreInstanceState(savedInstanceState);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
Log.d("ACTIVITY","ON SAVE INSTANCESTATE"); //No i18n
super.onSaveInstanceState(outState);
}
最佳答案
在你使用 setRequestedOrientation(...);
之后,你将不再有获得旋转通知的特权。
如果您想在旋转发生时执行特殊操作,您可能需要使用 OrientationEventListener
编辑:
注意:此代码将人像设置为 80-90 度且 >= 320,可以更改。
如果这段代码尚未在那里运行,您可能还需要在 UI 线程上运行 setRequestedOrientation。
你应该这样做:
mOrientationListener = new OrientationEventListener(this, SensorManager.SENSOR_DELAY_UI) {
@Override
public void onOrientationChanged(int rotation) {
boolean changed = false;
if (((rotation >= 0) && (rotation <= 80)) || (rotation >= 320)) {
setRequestedOrientation(Configuration.ORIENTATION_PORTRAIT);
} else {
setRequestedOrientation(Configuration.ORIENTATION_LANDSCAPE);
}
}
};
mOrientationListener.enable();
关于android - onConfigurationChanged 没有被第二次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16648294/
我的应用程序最初是显示商店标签,从服务中加载获取所有商店名称并适合自动完成后,然后向用户显示自动完成 block ,用户可以选择商店。一旦他选择了用户可见的商店登录 block 。 我的问题是用户选择
我试图通过将 android:configChanges="orientation|screenSize" 设置为我的 Activity 来停止由于设备方向更改而引起的 Activity 娱乐并通过覆
为什么当我在模拟器中切换方向 (ctrl+F11) 时,没有调用 onConfigurationChanged 覆盖方法。 public class HelloSample extends Activ
我正在使用以下代码在用户旋转设备时更改我的 Activity 方向。这第一次工作正常,但没有再次调用。请指正。 @Override public void onConfigurationCha
我有一个图像查看器应用程序,可以处理具有大量缓存的非常大的图像。当用户旋转设备时,如果应用程序完全重新启动,则会导致打嗝。 如果我禁用方向更改,则设备旋转是无缝的,但我有一个横向和纵向方向不同的侧边栏
我已经搜索了很长时间,但仍然没有运气。将代码更改为现在编辑的版本。已编辑在 onCreate 中以此开始应用程序: @Override protected void onCreate(Bund
如何在保持纵向模式布局的同时检测横向模式? 无论实际移动方向如何,我都有一个保持纵向模式的 Activity 。我可以通过将 android:screenOrientation="portrait"
这种行为在 Android GingerBread 中很受欢迎。我重写了 onConfigurationChanged() 以更新布局以更改设备的方向。(更新了 list 文件中的 android:c
我正在编写一个代码,当方向改变时改变 TextView 的文本我正在使用 onConfigurationChanged() 监听器来更改文本 override fun onConfigurationC
我试图重写方法 onConfigurationChanged 并且我收到错误: BaseActivity 类型的 onConfigurationChanged(Configuration) 方法必须覆
我在 try catch onConfigurationChanged 事件时遇到问题。这是场景: Activity A 开始(监听onConfigurationChanged) 手机旋转到横向模式(
我有一个处理配置更改的 Activity 。但现在我必须改变布局。我尝试在 onConfigurationChanged 回调中再次设置布局并希望获得正确的布局(土地)但它仍在显示纵向 View 的第
我的应用程序出现了奇怪的问题。我问 here 的主要问题。问题是 android:configChanges="keyboardHidden|orientation" 在我的代码中不起作用。 所以我找
我是一名年轻的 Android 开发者,我找不到解决我的问题的方法。 我想在配置更改后立即模拟一个事件,为此我尝试使用 onConfigurationChanged() 但使用此方法时,我的事件会在屏
有没有一种方法可以在不破坏整个 Activity 的情况下,将 ImageView 可绘制对象更改为横向模式的相应可绘制对象。我试图在 onConfigurationChanged 回调中再次设置可绘
屏幕旋转后,其中一个 View 对象的高度发生变化,我想知道以像素为单位的高度值。 onConfigurationChanged 方法可能在 View 完成旋转之前被调用。所以如果我在这个方法中测量
我必须在一个 fragment 的语言更改时刷新 fragment 内容。所以我想到了在我的主要 Activity 中使用 onConfigurationChange 方法(这个 Activity 控
所以我要做的就是检查方向并根据它更改图像。问题是图像没有变化,toast 消息也没有起作用。不知道为什么..我在其他地方也有同样的代码。 Java: public class Test extends
不再调用我的应用 onConfigurationChanged。我已将我的 SDK API 更新为 Lollipop,并将 SDK 级别 im AndroidManifest 设置如下: 我不知道我
我在 SO 上看到了一些相关问题,但我无法解决我的问题。我为纵向和横向模式创建了单独的布局。 我已经针对相应的方向更改修改了 AndroidManifest.xml 文件,但是当我在 Activity
我是一名优秀的程序员,十分优秀!