我想在我的 Android 应用程序中启用 RTL 支持。我查过这个问题change action bar direction to right-to-left
我做了以下事情:
- 已添加
android:supportsRtl="true"
到<application>
list 文件中的元素 并在MainActivity.java类的onCreate方法中添加了以下函数。
private void forceRTLIfSupported() { if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){ getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL); } }
但它仅将 MainActivity 的布局从 LTR 更改为 RTL。现在我想更改应用程序每个 Activity 的布局,我该怎么做。 如果任何人对整个应用程序中的 RTL 支持有任何了解,请帮助我。
最佳答案
您可以创建一个基本 Activity 并从中扩展您的所有 Activity :
BaseActivity.java
import android.annotation.TargetApi;
import android.os.Build;
public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
forceRTLIfSupported();
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private void forceRTLIfSupported()
{
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){
getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
}
}
}
SampleActivity.java
public class SampleActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sample);
}
}
关于android - Android 所有 API 级别的 RTL 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35546762/