标签: screen-rotation

屏幕旋转后如何恢复textview滚动位置?

在我的Android布局中,我有一个TextView.此TextView显示一个相当大的spannable文本,它可以滚动.现在,当手机旋转时,视图将被销毁并创建,我必须再次将TextText()设置为TextView,将滚动位置重置为开头.

我知道我可以使用getScrolly()和scrollTo()来滚动到像素位置,但是由于View宽度的变化,线变得更长,并且位于像素pos 400的线现在可能是250.所以这不是很很有帮助.

我需要一种方法在onDestroy()中的TextView中找到第一个可见行,然后在旋转后使TextView滚动到这段特定文本.

有任何想法吗?

android textview screen-rotation

4
推荐指数
2
解决办法
4524
查看次数

有没有办法区分正常的Activity破坏和旋转造成的破坏?

我有一个活动开始一些asynctasks.我希望这些任务停止,当我的Activity被"正常"销毁时(比如调用finish()/用户按下后退按钮/等),但是当用户只旋转设备时继续运行.

取消这些任务,并处理旋转工作正常,我只是无法将两者结合起来.

那么有没有办法告诉"onDestroy()"回调期间,由于配置更改(旋转),或者由于某些其他原因(例如后退按钮),Activity被销毁?

android screen-rotation

4
推荐指数
1
解决办法
196
查看次数

如何在重新定向后阻止缩放UIWebview的内容?

我正在构建一个具有UIWebView的iOS 5/6应用程序.它加载了我嵌入在我的应用程序中的一些HTML.
现在,当我旋转设备时,WebView会改变其大小(因为我希望它填满整个屏幕宽度).
然后它变得奇怪:一些内容被放大,一些内容没有扩大规模.请参阅此图片,其中包含一些示例文本:UIWebview轮换问题

如您所见,标题(H6)保持不变,而段落按比例放大.有没有人知道如何防止这种情况?我希望html在横向上看起来和在纵向模式下看起来一样.

我已经尝试将视口缩放设置为1:<meta name="viewport" content="initial-scale=1.0,max-scale=1.0"> 但这没有用.身体的font-size风格设置为14px,但改变14pt或百分比也没有区别.设置width身体100%也没有帮助.

奇怪的是,删除<br/>文本中的换行符()会修复它,但是我需要换行符,因此没有解决方案.

那唯一的工作是重装的方向变化后的UIWebView的内容,但是这并不妨碍它找错旋转,并将其重置任何滚动,用户可能已经完成.

有任何想法吗?

uiwebview screen-rotation ios

4
推荐指数
1
解决办法
1855
查看次数

旋转时更改应用程序后面的颜色

当iOS应用旋转时,当应用介于纵向和横向之间时,它将显示黑色背景。是否可以将此颜色从默认的黑色更改为白色?更改UIWindow的背景颜色将无济于事。这是旋转过程中Safari中黑色背景的示例: Safari轮换

screen-rotation ios

4
推荐指数
1
解决办法
952
查看次数

屏幕旋转后的nullPointerException

LinearLayout在屏幕旋转后返回对象返回的nullPointerException异常, 虽然我在onCreate()super.onCreate(null)中传递null ; .我知道Activity必须被销毁并重新创建旁边我传递的savedInstanceState = null表示Activity应该在旋转后开始,因为它是第一次启动,为什么我在轮换后得到这个Exception?

onCreate()片段,其中LinearLayout对象名为historyText

LinearLayout historyText ;  // this return exception if it used after rotation . 

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(null);
    setContentView(R.layout.activity_main);
    historyText = (LinearLayout) findViewById(R.id.historyLayoutText); 
    Log.e("HISTORYVISIBILITY", "VISIBILITY = "+historyText.getVisibility());
    getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
    database = new Database(this);
    Bundle extras = getIntent().getExtras();
    intent = extras.getInt("activity");
    p = new Progress();
    getSupportFragmentManager().beginTransaction()
                .add(R.id.group, p)
                .commit();
    orientation = getRotation();
    switch (orientation){
        case "p" :
            addPlus();
    }
}
Run Code Online (Sandbox Code Playgroud)

logcat的

    10-07 22:21:24.365: E/AndroidRuntime(7768): …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception screen-rotation android-linearlayout

4
推荐指数
1
解决办法
1315
查看次数

当我的活动发生变化或破坏时,如何阻止ASyncTask崩溃?

这可能是另一个问题的重复,我不确定.我读过类似的问题,但要么无法理解它,要么无法成功应用给定的解决方案.

我创建了一个包含多个选项卡的应用程序.大多数选项卡使用ASyncTask在用户滑入选项卡时更新数据.但是,当AST仍然在运行时有关活动的某些内容发生变化(这种情况发生很多;例如,当用户旋转屏幕或使用后退按钮退出时),应用程序将强制关闭(ANR).

这是我在LogCat中看到的情况:

10-30 11:30:01.422: E/AndroidRuntime(4687): FATAL EXCEPTION: main
10-30 11:30:01.422: E/AndroidRuntime(4687): java.lang.NullPointerException
10-30 11:30:01.422: E/AndroidRuntime(4687):     at com.appconstructor.khcreates.Core$refreshList.onPostExecute(Core.java:913)
10-30 11:30:01.422: E/AndroidRuntime(4687):     at com.appconstructor.khcreates.Core$refreshList.onPostExecute(Core.java:1)
10-30 11:30:01.422: E/AndroidRuntime(4687):     at android.os.AsyncTask.finish(AsyncTask.java:631)
10-30 11:30:01.422: E/AndroidRuntime(4687):     at android.os.AsyncTask.access$600(AsyncTask.java:177)
10-30 11:30:01.422: E/AndroidRuntime(4687):     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
10-30 11:30:01.422: E/AndroidRuntime(4687):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-30 11:30:01.422: E/AndroidRuntime(4687):     at android.os.Looper.loop(Looper.java:137)
10-30 11:30:01.422: E/AndroidRuntime(4687):     at android.app.ActivityThread.main(ActivityThread.java:4745)
10-30 11:30:01.422: E/AndroidRuntime(4687):     at java.lang.reflect.Method.invokeNative(Native Method)
10-30 11:30:01.422: E/AndroidRuntime(4687):     at java.lang.reflect.Method.invoke(Method.java:511)
10-30 11:30:01.422: E/AndroidRuntime(4687):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
10-30 11:30:01.422: E/AndroidRuntime(4687):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-30 11:30:01.422: E/AndroidRuntime(4687):     at dalvik.system.NativeStart.main(Native Method) …
Run Code Online (Sandbox Code Playgroud)

android screen-rotation android-asynctask android-anr-dialog

3
推荐指数
1
解决办法
6050
查看次数

xcode - 如何将视图锁定为纵向模式,但仍允许一个视图旋转?

我遇到设备轮换问题.除了一个视图,我显示公司启动画面,我想将所有剩余的应用程序视图锁定到纵向显示.在项目设置中,支持的方向是Portrait和LandscapeLeft.在"公司飞溅"中它工作正常,无论我如何旋转设备,视图旋转都锁定在LandscapeLeft中.在我将设备向左旋转的所有其他视图中,视图会改变而不是保持纵向显示.这些方法甚至没有开火?如果我从项目中支持的方向中删除横向,则会拧紧"公司启动"视图.我尝试改变shouldAutorotate回归NO,但这没有帮助.试图通过这里发布的建议,但这没有帮助.如果我将以下代码放入我的AppDelegate.m,一切都被锁定为纵向模式,并且"公司启动"在访问时崩溃.

-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown;
}
Run Code Online (Sandbox Code Playgroud)

除了一个屏幕外,无论设备如何旋转,如何将视图锁定为纵向模式?

**来自'公司飞溅'视图的方法.再次,应该是这样的工作.

-(NSInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscapeLeft;
}
Run Code Online (Sandbox Code Playgroud)

**来自所有其他视图的方法,当我不希望它们旋转时,这些视图会旋转出来

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // IOS5 Only returning that it should rotate to potrait
    return (interfaceOrientation == UIDeviceOrientationPortrait);
}

-(BOOL)shouldAutorotate
{
    // forcing the rotate IOS6 Only
    return YES;
}

-(NSInteger)supportedInterfaceOrientations
{
    // return number or enum IOS6 Only
    return UIInterfaceOrientationMaskPortrait;
}
Run Code Online (Sandbox Code Playgroud)

我想也许可能是因为UITabBarController是根控制器而我在ViewController中呢?这些方法甚至没有开火?

iphone xcode portrait orientation screen-rotation

3
推荐指数
1
解决办法
1万
查看次数

应用程序屏幕不会在横向模式下旋转两侧

我正在编写一个在横向模式下运行的android应用程序.当我将设备旋转180度时,它保持原样.我能做什么?改变以及它可以在两个水平方向上运行的位置?

eclipse android landscape screen-rotation

3
推荐指数
1
解决办法
2045
查看次数

设备旋转后UITableView校正滚动位置

我正在为一本书建立类似读者的东西.当用户旋转手机时,我想增加字体大小.我用a UITableView来显示文本块.

问题是,增加字体大小会增加表视图中行的高度,如果我在纵向模式下读取段落320,我在横向模式下会得到280或类似的东西.

我已使用以下代码设置了旋转通知侦听器:

    UIDevice *device = [UIDevice currentDevice];                
    [device beginGeneratingDeviceOrientationNotifications];
    NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
    [nc addObserver:self                                
           selector:@selector(orientationChanged:)
               name:UIDeviceOrientationDidChangeNotification
             object:device];
Run Code Online (Sandbox Code Playgroud)

并尝试在旋转之前保存最后一个段落索引,然后在旋转后向下滚动到它,但我似乎无法达到预期的效果.

什么是处理这种情况的最佳方法,我在哪里实际实现"之前"和"之后"轮换状态?

我希望它可以在iOS 4+上运行.

iphone scroll uitableview screen-rotation ios

2
推荐指数
1
解决办法
5703
查看次数

锁定方向并在iPad上禁用旋转

我有以下代码可以在iPhone上正常运行,但不能在iPad上运行。它应该仅在此ViewController上锁定方向的横向方向并禁用自动旋转(对于整个应用程序不禁用-请勿更改project / info.plist文件中的属性):

override var shouldAutorotate : Bool {
        return false
}
Run Code Online (Sandbox Code Playgroud)

并在viewDidLoad()

let landscapeValue = UIInterfaceOrientation.landscapeRight.rawValue
UIDevice.current.setValue(landscapeValue, forKey: "orientation")
Run Code Online (Sandbox Code Playgroud)

如何将方向锁定为横向并禁用当前ViewController的旋转(就像它已经在iPhone上正常运行一样)?

我的规格:

XCode-9.1内部版本9B55

迅捷-4.0.2

在iPad Air上进行了测试-iOS 10.3.3

orientation ipad screen-rotation ios swift

2
推荐指数
1
解决办法
873
查看次数