【问题标题】:Android id for the custom layout for SwitchPreferenceCompatSwitchPreferenceCompat 的自定义布局的 Android id
【发布时间】:2017-06-15 11:16:15
【问题描述】:

我一直在尝试为PreferenceFragment 中的Preference(s) 创建样式字体 的自定义布局。对于只有标题和摘要的简单偏好,我可以通过提及具有 android id 的布局资源来做到这一点,例如:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:gravity="center_vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="70dp">

    <TextView
        android:id="@android:id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:textColor="@color/primaryTextColour"/>

    <TextView
        android:id="@android:id/summary"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:textColor="@color/secondaryTextColour"/>
</LinearLayout>

这对于EditTextPreferenceListPreference 之类的首选项非常有效。现在,我想为SwitchPreferenceCompat 做同样的事情。我找不到的是android:id 用于SwitchPreferenceCompat 中的开关/切换。如果我使用上面提到的布局,它可以工作,但我再也看不到开关了。我为此目的编写的布局是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:gravity="center_vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="100"
    android:minHeight="70dp">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:weightSum="80"
        android:orientation="vertical">

        <TextView
            android:id="@android:id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="18sp"
            android:textColor="@color/primaryTextColour"/>

        <TextView
            android:id="@android:id/summary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="16sp"
            android:textColor="@color/secondaryTextColour"/>

    </LinearLayout>

    <android.support.v7.widget.SwitchCompat
        android:id="@android:id/??"
        android:layout_width="wrap_content"
        android:weightSum="20"
        android:layout_height="wrap_content" />

</LinearLayout>

我应该在这里切换为SwitchCompatandroid:id 是什么?

【问题讨论】:

    标签: android android-preferences switchpreference


    【解决方案1】:

    试试这个id

    android:id="@+id/switchWidget"
    

    【讨论】:

    • 我看到switch_widget 的选项,但它要求最低 API 级别为 24。我至少为 19。
    • 您是否使用了 support-pref 库?
    • 不。我会检查的。
    • 是的,我使用的是com.android.support:preference-v7:25.3.1,如果你是指那个?
    • 是的......它有效..我之前使用的是android:id="@android:id/switchWidget。任何文件指向这个?谢谢:)
    猜你喜欢
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多