安卓开发工具 - Activity布局显示翻转(从右到左而非从左到右)

7

我在我的应用中遇到了一个非常奇怪的问题。

我有一个应用,在Android Studio上按下“运行”按钮后,它会以正确的布局方向启动应用程序。现在,当我按下返回按钮并返回应用程序时,它显示RTL布局而不是当前的、正确的LTR布局。

这个应用程序非常简单,它有一个带有导航按钮的活动栏,当它翻转时,导航按钮从左到右移动,指向错误的方向。

应用程序是LTR,仅支持英语,并在英语设备上进行了测试,在模拟器上也出现了相同的结果。我使用的是Android Studio的最终版本。

  • 布局,带有工具栏和导航属性,以启用后退箭头。
  • 活动,其中setContentView只显示布局。
  • 按下返回键或重新打开应用程序而不清除它的BackStack,会显示视觉错误。

是什么导致了这个问题?因为代码非常简单,没有任何复杂的东西。

清单代码:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.corF.app">
<uses-permission android:name="android.permission.INTERNET"/>
<application
    android:supportsRtl="true"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:theme="@style/AppTheme">
    <activity
        android:name="com.corF.app.activities.ActivityStartup"
        android:label="@string/app_name"
        android:windowSoftInputMode="adjustResize|stateHidden">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
</manifest>

3
发布一些代码。清单将会很有用。 - Ivan Wooll
已添加清单代码。 - Jaeger
从清单应用程序标签中删除此行 android:supportsRtl="true" - Devil10
仍然是同样的问题:/ - Jaeger
你会说英语以外的语言吗?设备(Android或开发计算机)设置为非英语语言了吗?资源在哪个目录中?Android将使用它认为适用于应用程序用户的语言和地区方言。那么字符串资源目录呢? - Pomagranite
该设备默认语言为英语,应用程序也是如此。正如我在回答中所述,这个滑块在其MainActivity类(SliderLayout.java,据我所记)中有RTL强制代码。 - Jaeger
1个回答

7

我使用的一个库(SliderLayout)有一段代码,会强制应用程序显示从右到左(RTL)。在第一次启动时,SliderLayout 强制使用 RTL,但只有在我重新打开应用程序而不完全将其从后台移除时才会生效。

这是一个简单的问题,以下是解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接