RTL支持所有API级别的android

时间:2016-02-22 06:04:48

标签: android right-to-left

我想在我的Android应用程序中启用RTL支持。我已经检查了这个问题change action bar direction to right-to-left

我做了以下事情:

  1. org.hibernate.PersistentObjectException: detached entity passed to persist: com.test.lalala.profile.Profile添加到清单文件中的android:supportsRtl="true"元素
  2. 并在MainActivity.java类的onCreate方法中添加了以下函数。

    <application>
  3. 但它只将MainActivity的布局从LTR更改为RTL。现在我想更改我的应用程序的每个活动的布局,我该怎么做。 请帮助我,任何人都对应用程序中的RTL支持有所了解。

1 个答案:

答案 0 :(得分:2)

您可以创建基本活动并从中扩展所有活动:

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);
    }

}