gpt4 book ai didi

android - 如何将偏好类别显示为卡片 View ?

转载 作者:行者123 更新时间:2023-12-05 07:56:30 25 4
gpt4 key购买 nike

我想将 PreferenceCategory 显示为 CardView

在官方 Lollipop 首选项屏幕中,他们不直接使用 CardView,但不同首选项类别之间也存在差距。我该怎么做?

这是我的首选项代码:

首选项 fragment (PreferenceFragment)

/**
* Created by xisberto on 08/11/14.
*/
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public class PrefsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

String category = getArguments().getString("category");
if (category != null) {
if (category.equals(getString(R.string.category_general))) {
addPreferencesFromResource(R.xml.prefs_general);
} else if (category.equals(getString(R.string.category_advanced))) {
addPreferencesFromResource(R.xml.prefs_erscheinungsbild);
}
}
}
}

首选项(PreferenceActivity)

public class Preferences extends PreferenceActivity {
private Toolbar mToolBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

prepareLayout();

buildLegacyPreferences();
}

private void prepareLayout() {
ViewGroup root = (ViewGroup) findViewById(android.R.id.content);
View content = root.getChildAt(0);
LinearLayout toolbarContainer = (LinearLayout) View.inflate(this, R.layout.activity_prefs, null);

root.removeAllViews();
toolbarContainer.addView(content);
root.addView(toolbarContainer);

mToolBar = (Toolbar) toolbarContainer.findViewById(R.id.toolbar);
mToolBar.setTitle(getTitle());
mToolBar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
mToolBar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}

private void buildLegacyPreferences() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
String action = getIntent().getAction();
if (action == null) {
addPreferencesFromResource(R.xml.headers_legacy);
} else if (action.equals(getString(R.string.category_general))) {
mToolBar.setTitle(getString(R.string.header_general));
addPreferencesFromResource(R.xml.prefs_general);
} else if (action.equals(getString(R.string.category_advanced))) {
mToolBar.setTitle(getString(R.string.header_general));
addPreferencesFromResource(R.xml.prefs_erscheinungsbild);
}
}
}

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
public void onBuildHeaders(List<Header> target) {
super.onBuildHeaders(target);
loadHeadersFromResource(R.xml.headers, target);
}

@TargetApi(Build.VERSION_CODES.KITKAT)
@Override
protected boolean isValidFragment(String fragmentName) {
return fragmentName.equals(PrefsFragment.class.getName());
}

public static int getToastDuration(Context context) {
return (PreferenceManager.getDefaultSharedPreferences(context).getString(PreferenceNames.TOAST_DURATION, "0").equals("0")) ? 0 : 1;
}
}

最佳答案

您必须使用此 CardView 创建另一个布局/xml 文件(例如 preference_category_layout),然后

<android.support.v7.preference.PreferenceCategory
android:layout="@layout/preference_category_layout">

关于android - 如何将偏好类别显示为卡片 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28646892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com