安卓 : preferencescreen right to left

标签 android xml right-to-left

这是PreferenceScreen的xml文件 PreferenceCategory 出现我需要的 RTL,但 L 其他组件出现 LTR 如何制作 RTL?

我系关注这个link我将 android:supportsRtl="true"添加到 list 文件中的元素,但什么也没发生!

 <?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="end">

    <PreferenceScreen
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="end"
            android:title="@string/about_feedex">
            <intent
                android:action="android.intent.action.VIEW"
                android:targetPackage="com.arrafni.news"
                android:targetClass="com.arrafni.news.activity.AboutActivity"/>
    </PreferenceScreen>

    <PreferenceCategory
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="end"
        android:title="@string/settings_category_refresh">

        <CheckBoxPreference
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="end"
            android:defaultValue="true"
            android:key="refresh.enabled"
            android:summary="@string/settings_refresh_enabled_description"
            android:title="@string/settings_refresh_enabled" />

        <ListPreference
            android:name="@string/settings_refresh_interval"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="end"
            android:defaultValue="1800000"
            android:dependency="refresh.enabled"
            android:entries="@array/settings_intervals"
            android:entryValues="@array/settings_interval_values"
            android:inputType="number"
            android:key="refresh.interval"
            android:summary="@string/settings_refresh_interval_description"
            android:title="@string/settings_refresh_interval" />

        <CheckBoxPreference
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="end"
            android:defaultValue="false"
            android:key="refreshonopen.enabled"
            android:summary="@string/settings_refresh_on_open_description"
            android:title="@string/settings_refresh_on_open" />

        <CheckBoxPreference
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:defaultValue="false"
            android:gravity="end"
            android:key="refreshwifionly.enabled"
            android:summary="@string/settings_refresh_wifi_only_description"
            android:title="@string/settings_refresh_wifi_only" />
    </PreferenceCategory>

    <PreferenceCategory
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:title="@string/settings_category_content_presentation">

        <CheckBoxPreference
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:defaultValue="true"
            android:gravity="end"
            android:disableDependentsState="true"
            android:key="lighttheme"
            android:summary="@string/settings_lighttheme_description"
            android:title="@string/settings_lighttheme" />

        <ListPreference
            android:name="@string/settings_keep_time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:defaultValue="4"
            android:gravity="end"
            android:entries="@array/settings_keep_times"
            android:entryValues="@array/settings_keep_time_values"
            android:inputType="number"
            android:key="keeptime"
            android:summary="@string/settings_keep_time_description"
            android:title="@string/settings_keep_time" />

        <ListPreference
            android:name="@string/settings_font_size"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:defaultValue="0"
            android:gravity="end"
            android:entries="@array/settings_font_sizes"
            android:entryValues="@array/settings_font_size_values"
            android:inputType="number"
            android:key="fontsize"
            android:summary="@string/settings_font_size_description"
            android:title="@string/settings_font_size" />

        <CheckBoxPreference
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:defaultValue="false"
            android:gravity="end"
            android:disableDependentsState="true"
            android:key="pictures.disable"
            android:summary="@string/settings_disable_pictures_description"
            android:title="@string/settings_disable_pictures" />

        <CheckBoxPreference
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:defaultValue="false"
            android:gravity="end"
            android:dependency="pictures.disable"
            android:key="pictures.fetch"
            android:summary="@string/settings_fetch_pictures_description"
            android:title="@string/settings_fetch_pictures" />

        <CheckBoxPreference
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:defaultValue="false"
            android:gravity="end"
            android:key="display_oldest_first"
            android:summary="@string/settings_display_oldest_first_description"
            android:title="@string/settings_display_oldest_first" />
    </PreferenceCategory>

    <PreferenceCategory
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="end"
        android:title="@string/settings_category_notifications">

        <CheckBoxPreference
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:defaultValue="true"
            android:gravity="end"
            android:key="notifications.enabled"
            android:summary="@string/settings_notifications_enabled_description"
            android:title="@string/settings_notifications_enabled" />

        <RingtonePreference
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="end"
            android:dependency="notifications.enabled"
            android:key="notifications.ringtone"
            android:ringtoneType="notification"
            android:summary="@string/settings_notifications_ringtone_description"
            android:title="@string/settings_notifications_ringtone" />

        <CheckBoxPreference
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:dependency="notifications.enabled"
            android:gravity="end"
            android:key="notifications.vibrate"
            android:summary="@string/settings_notifications_vibrate_description"
            android:title="@string/settings_notifications_vibrate" />
    </PreferenceCategory>

    <PreferenceCategory
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="end"
        android:textDirection = "rtl"
        android:title="@string/settings_category_network">

        <PreferenceScreen
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="end"
            android:textDirection = "rtl"
            android:title="@string/settings_screen_proxy">

            <CheckBoxPreference
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="end"
                android:textDirection = "rtl"
                android:key="proxy.enabled"
                android:title="@string/settings_proxy_enabled" />

            <CheckBoxPreference
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="end"
                android:textDirection = "rtl"
                android:dependency="proxy.enabled"
                android:key="proxy.wifionly"
                android:summary="@string/settings_proxy_wifi_only_description"
                android:title="@string/settings_proxy_wifi_only" />

            <EditTextPreference
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="end"
                android:textDirection = "rtl"
                android:dependency="proxy.enabled"
                android:key="proxy.host"
                android:title="@string/settings_proxy_host" />

            <EditTextPreference
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:dependency="proxy.enabled"
                android:gravity="end"
                android:textDirection = "rtl"
                android:inputType="number"
                android:key="proxy.port"
                android:title="@string/settings_proxy_port" />

            <ListPreference
                android:name="@string/settings_proxy_type"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textDirection = "rtl"
                android:gravity="end"
                android:defaultValue="0"
                android:dependency="proxy.enabled"
                android:entries="@array/settings_proxy_types_names"
                android:entryValues="@array/settings_proxy_types"
                android:inputType="number"
                android:key="proxy.type"
                android:title="@string/settings_proxy_type" />
        </PreferenceScreen>
    </PreferenceCategory>

</PreferenceScreen>

最佳答案

你解决了吗?

对此有 2 种可能的解决方法:扩展每个首选项,并添加:

  @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
  @Override
  protected View onCreateView(final ViewGroup paramViewGroup)
    {
    final View view=super.onCreateView(paramViewGroup);
    if(VERSION.SDK_INT>=VERSION_CODES.JELLY_BEAN_MR1)
      view.setLayoutDirection(View.LAYOUT_DIRECTION_LOCALE);
    return view;
    }

另一个更简单的是关于 Activity :

if(VERSION.SDK_INT>=VERSION_CODES.JELLY_BEAN_MR1)
  getListView().setLayoutDirection(View.LAYOUT_DIRECTION_LOCALE);

但是,对于这两种解决方法,我都找不到如何处理通过按某些首选项显示的对话框。

关于安卓 : preferencescreen right to left,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21949403/

相关文章:

android - 我应该在 BindAdapter 类中使用 inject 吗?

java - Android ActionBar 选项卡布局不是全宽

android - 将 Android 应用程序资源移动到外部存储器

C# 属性 - 需要子属性

php - 为 XHTML 输出存储和检索非法 XML 字符

android - 为 PocketSphinxAndroidDemo 设置 SWIG Builder 时得到 "Error running Integrated External Tool Builder"

xml - SQL 2008 XML 存储

java - 华为设备上的文本对齐问题

css - 有没有办法在 firefox 中为 div 更改滚动条的一侧?

css - 用于 RTL 语言的 Twitter Bootstrap 向右拉和向左拉