标签: screen-orientation

如何将我的android程序的布局锁定到一个方向

可能重复:
不希望在旋转手机时销毁/创建活动

我正在尝试编写一个需要平滑方向传感器样本的程序,因为手机四处旋转.每次更改手机的方向时,它会中断数据并在布局更改时冻结程序.如何将其锁定在一个方向(横向或纵向,无关紧要)?

我认为它与android:layoutxml文件有关,但我在网上找不到任何东西.

java android sensor orientation screen-orientation

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

屏幕方向改变后应用程序崩溃

我有以下问题.启动后,即使在更改屏幕方向后,应用程序也能正常工作.应用程序尚未准备好处理方向更改(例如,替代布局等),因此只显示旋转的默认布局并且没有问题.但是,当我通过按后退键离开应用程序时,更改方向并在再次启动应用程序后立即崩溃.崩溃后,如果我再次启动应用程序,它会很好地工作,直到前面描述的情况发生 - 然后它崩溃.

我已将设备连接到计算机并以调试模式运行应用程序.重新启动后,甚至在调用onCreate之前抛出异常.崩溃调用堆栈如下:

Thread [<1> main] (Suspended (exception IllegalArgumentException))  
WindowManagerImpl.removeViewImmediate(View) line: 262   
Window$LocalWindowManager.removeViewImmediate(View) line: 436   
ActivityThread.handleDestroyActivity(IBinder, boolean, int, boolean) line: 4022 
ActivityThread.handleRelaunchActivity(ActivityThread$ActivityRecord, int) line: 4127    
ActivityThread.access$2400(ActivityThread, ActivityThread$ActivityRecord, int) line: 136    
ActivityThread$H.handleMessage(Message) line: 2183  
ActivityThread$H(Handler).dispatchMessage(Message) line: 99 
Looper.loop() line: 143 
ActivityThread.main(String[]) line: 5068    
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]  
Method.invoke(Object, Object...) line: 521  
ZygoteInit$MethodAndArgsCaller.run() line: 858  
ZygoteInit.main(String[]) line: 616 
NativeStart.main(String[]) line: not available [native method]  
Run Code Online (Sandbox Code Playgroud)

我计划稍后处理屏幕旋转,但在此之前,我希望默认行为正常工作.

我只覆盖了onCreate Activity的方法.我还有自定义应用程序类,它创建了一个应用程序范围的使用引擎类的实例:

public class ProCalcApplication extends Application
{ …
Run Code Online (Sandbox Code Playgroud)

crash android screen-orientation

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

为纵向和横向指定不同的布局?

我为一个活动指定了两个单独的布局xml文件,一个用于res/layout文件夹中的Portrait,另一个用于res/layout-land文件夹中的Landscape.我的实际问题是,当我以纵向模式启动应用程序时,它需要ui从布局和即时我旋转我的手机它不需要从布局 - 土地文件夹中的xml它需要从布局文件夹ui,如果我在横向模式下启动我的应用程序它从layout-land文件夹中获取xml并立即将我旋转到肖像模式它从布局中获取xml-land ui不会更改为纵向ui.

可以任何伙伴告诉我什么是问题是有什么需要的PLZ帮助我解决这个问题.

提前致谢 .

    this is my landscape ui xml

        <?xml version="1.0" encoding="utf-8"?>
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/widget57"
        android:layout_width="400dp"
        android:layout_height="400dp"
        android:layout_gravity="center|center_vertical"
        android:layout_marginTop="30dp"
        android:orientation="vertical" >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="40dp" >

            <TextView
                android:id="@+id/txtName"
                android:layout_width="90dp"
                android:text="@string/UserName" />

            <EditText
                android:id="@+id/edName"
                android:imeOptions="actionNext|actionDone"
                android:paddingRight="10dp"
                android:singleLine="true"
                android:width="240dp" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/txtPass"
                android:layout_width="90dp"
                android:text="@string/PassWord" />

            <EditText
                android:id="@+id/edPass"
                android:imeOptions="actionGo"
                android:paddingRight="10dp"
                android:password="true"
                android:singleLine="true"
                android:width="240dp" />
        </TableRow>

         <LinearLayout
            android:id="@+id/widget57"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="center"
            android:orientation="vertical" >

            <Button
                android:id="@+id/btnLogin"
                android:layout_width="150dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="10dp"
                android:text="@string/btn_GO"
                android:textSize="19sp" >
            </Button> …
Run Code Online (Sandbox Code Playgroud)

android landscape portrait screen-orientation

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

方向改变后,片段的选项菜单不会消失

我基于本教程实现了我的布局:http://android-developers.blogspot.hu/2011/02/android-30-fragments-api.html

不同之处是:

  • 根据左侧列表中的选项,我可以显示不同的片段
  • "细节片段"(右侧的片段)具有不同的选项菜单

我的问题是,如果我已从左侧选择了某些内容然后将手机旋转为肖像,则最后一个选项菜单仍然存在且可见.

我认为问题来自最后一个活动的"细节"片段在方向改变后重新创建.为了测试它我创建了这两个方法:

@Override
public void onStart() {
    super.onStart();
    setHasOptionsMenu(true);
}

@Override
public void onStop() {
    super.onStop();
    setHasOptionsMenu(false);
}
Run Code Online (Sandbox Code Playgroud)

而且我正在显示正确的片段:

case R.id.prefs_medicines:
        if (mDualPane) {


            // Check what fragment is shown, replace if needed.
            View prefsFrame = getActivity().findViewById(R.id.preferences);
            if (prefsFrame != null) {
                // Make new fragment to show this selection.
                MedicineListF prefF = new MedicineListF();

                // Execute a transaction, replacing any existing
                // fragment with this one inside the frame.
                FragmentTransaction ft = …
Run Code Online (Sandbox Code Playgroud)

android screen-orientation

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

Eclipse中android xml布局的横向预览

在Eclipse(ADT插件)中,有一个简洁的功能来以图形形式预览xml布局.我android:screenOrientation="landscape"为我设定了Activity,我认为它会以这种方式显示出来.但预览似乎仅限于纵向方向.有没有办法改变它?

eclipse android adt screen-orientation

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

仅适用于Android App Landscape

我想只创建我的应用程序版本,所以我使用这里提供的方法:我想在android中的横向上创建我的应用程序

简而言之,我正在添加android:screenOrientation="landscape"到我的清单文件中.

它部分工作,但问题是它只允许用户在两​​个横向方向之一中使用应用程序.如何告诉应用程序允许使用任何横向方向?

(在Nexus 7 4.2上测试)

android orientation screen-orientation

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

实现setRequestedOrientation后,onCreate被调用两次

我有一个问题,我需要从数据库中显示数据,并以表格的形式在我的应用程序中查看它.一切顺利,但由于表格列很长(由于从数据库收到的数据),我决定将方向设置为横向以便于查看(我猜).实现此代码后,

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Run Code Online (Sandbox Code Playgroud)

onCreate()函数被调用了两次.我知道它已被调用两次,因为我已经包含了log.i. 我的所有log.i都被调用了两次.我的日志应显示如下:

03-19 14:13:53.401: I/loop check(30510): loop
03-19 14:13:54.112: I/jObjLength(30510): 5
03-19 14:13:54.112: I/JSON(30510): jsonObj = work0
03-19 14:13:54.162: I/JSON(30510): jsonObj = work1
03-19 14:13:54.162: I/JSON(30510): jsonObj = work2
03-19 14:13:54.172: I/JSON(30510): jsonObj = work3
03-19 14:13:54.172: I/JSON(30510): jsonObj = work4
Run Code Online (Sandbox Code Playgroud)

但相反,它显示了这一点:

03-19 14:30:12.801: I/loop check(30510): loop
03-19 14:30:12.921: I/jObjLength(30510): 5
03-19 14:30:12.921: I/JSON(30510): jsonObj = work0
03-19 14:30:12.931: I/JSON(30510): jsonObj = work1
03-19 14:30:12.941: I/JSON(30510): jsonObj = work2
03-19 14:30:12.951: I/JSON(30510): jsonObj = work3
03-19 14:30:12.951: I/JSON(30510): …
Run Code Online (Sandbox Code Playgroud)

eclipse android screen-orientation

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

iOS + SpriteKit:如何强制纵向模式?

我目前正在开发适用于iOS 7+和XCode 6的SpriteKit游戏.游戏应始终以纵向模式呈现.到目前为止,我已在视图控制器中实现了这些方法:

- (BOOL)shouldAutorotate {
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait;
}
Run Code Online (Sandbox Code Playgroud)

只要我启动应用程序将我的iPad保持在纵向模式,这样就可以正常工作.在游戏过程中它不会切换方向.

但是,在应用程序启动期间以横向方向按住iPad时,游戏会以横向显示.

即使在启动期间设备以横向模式保持,如何强制应用程序以纵向模式显示?

orientation screen-orientation uiinterfaceorientation ios sprite-kit

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

Delphi Android - 检测设备方向的变化

Delphi Android开发新手.如何检测屏幕方向是否已更改?即从肖像到风景,反之亦然?当发生这种情况时,如何触发代码?例如,我的图像大小为300x200,在纵向模式下,但当设备切换到横向时,我希望它调整并占据全屏宽度.

delphi android orientation screen-orientation

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

在Android Studio中将代码从Java转换为Kotlin

任何人都可以解释如何用Android Studio中的Kotlin替换现有的Java代码吗?

java android screen-orientation kotlin android-studio

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