How to right align PreferencesActivity in android?

前端 未结 14 2202
一向
一向 2020-12-31 07:07

I have PreferencesActivity which I need it to be right aligned because I want to use Arabic language, I tried to use android:layout_gravity=\"right\"

14条回答
  •  攒了一身酷
    2020-12-31 07:58

    After spending some time searching about our shared question, I found nothing useful. obviosly android api doesn't support RTL prefefrences. it means no support for persian/hebrew/arabic languages. But afterall I tried to find some way to right align an editText. I drived EditTextPreference class and implemented onCreateView method again. here is my code:

    /**
     * Created by omid on 1/12/14.
     */
    public class RtlTextPreference extends EditTextPreference {
    
    
        public RtlTextPreference(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        @Override
        protected View onCreateView(ViewGroup parent) {
            View view = super.onCreateView(parent);
    
            RelativeLayout layout = (RelativeLayout) ((LinearLayout) view).getChildAt(1);
            layout.setGravity(Gravity.RIGHT);
            return view;
        }
    }
    

    the rest of the preferences in the standard android api should be the same(btw I haven't tried yet). maybe someday we should fully implement rtl support in android preferences and host it on github. Hope this code snippet helps you.

提交回复
热议问题