2016-02-22 123 views
1

我想在我的android应用程序中启用RTL支持。清单文件 所有API级别的RTL支持android

  • ,并添加了以下功能MainActivity.java类的onCreate方法

    1. 新增android:supportsRtl="true"<application>元素:我已经检查了这个问题change action bar direction to right-to-left

      我也做了下面的事情。

      private void forceRTLIfSupported() 
      { 
          if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){ 
          getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL); 
          } 
      } 
      

    但它的变化在MainActivity的布局只能从LTR到RTL。现在我想更改我的应用程序的每个活动的布局,我该怎么做。 请帮助我,任何人都有任何关于在所有的应用程序RTL支持的想法。

  • 回答

    1

    您可以创建一个基本的活动,所有的活动从其扩展:

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