我正在创建一个设置屏幕,其中有几个设置项:SwitchPreferenceCompat和我的CustomPreference。我需要СustomPreference在SwitchPreferenceCompat关闭**时消失(隐藏),在SwitchPreferenceCompat打开时出现(显示)。开箱即用,通过为某些Preferences指定“dependency”属性,只有“dependency”机制可用,这只禁用/启用项目,我需要更改可见性。有没有办法做到这一点?
SwitchPreferenceCompat
CustomPreference
6yt4nkrj1#
创建customPreference并覆盖onDependencyChanged()。
package com.paul.ttcapp.p9988030.helper.ui; import android.content.Context; import android.util.AttributeSet; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.preference.EditTextPreference; import androidx.preference.Preference; public class PaulEditTextPreference extends EditTextPreference { public PaulEditTextPreference(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } public PaulEditTextPreference(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public PaulEditTextPreference(@NonNull Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public PaulEditTextPreference(@NonNull Context context) { super(context); } @Override public void onDependencyChanged(@NonNull Preference dependency, boolean disableDependent) { // If the corresponding dependency is disabled, disable (hide) this setting as well. setVisible(!disableDependent); super.onDependencyChanged(dependency, disableDependent); } }
1条答案
按热度按时间6yt4nkrj1#
创建customPreference并覆盖onDependencyChanged()。