gpt4 book ai didi

android - 自定义首选项标题布局

转载 作者:行者123 更新时间:2023-11-30 01:14:21 26 4
gpt4 key购买 nike

我正在使用依赖于 AppCompatDelegate 的 AndroidStudio(NewActivitySettings Activity)生成的 SettingsActivity。我已成功添加工具栏并将自定义分隔线设置为用于显示首选项标题的 ListView ,如下所示:

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

LinearLayout root =
(LinearLayout) findViewById(android.R.id.list).getParent().getParent().getParent();
Toolbar toolbar = (Toolbar) LayoutInflater.from(this).inflate(R.layout.toolbar, root, false);
root.addView(toolbar, 0);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});

ListView listView = getListView();
listView.setDivider(ContextCompat.getDrawable(this, R.drawable.settings_divider));
listView.setDividerHeight(1);

setupActionBar();
}

但是,我不知道如何增加与每个 ListView 项目相关的填充,也不知道如何增加图标和首选项标题标题之间的间距。是否可以使用样式或传递自定义布局?

enter image description here

最佳答案

您可以创建覆盖 PreferenceCategory 的自定义布局。例如像这样:

public class CustomPreferenceCategory extends PreferenceCategory {

public CustomPreferenceCategory(Context context) {
super(context);
}

public CustomPreferenceCategory(Context context, AttributeSet attrs) {
super(context, attrs);
}

public CustomPreferenceCategory(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

@Override
protected View onCreateView(ViewGroup parent) {
View view = super.onCreateView(parent);

return view;
}

@Override
public View getView(View convertView, ViewGroup parent) {
final View view = super.getView(convertView, parent);
view.setPadding(view.getPaddingLeft(), view.getPaddingTop()*2, view.getPaddingRight(), 10);

TextView textView = (TextView) view.findViewById(android.R.id.title);
textView.setGravity(Gravity.BOTTOM);

return view;
}
}

通过重写这些方法(如果你愿意,你还可以设置一些其他方法,你可以设置填充、边距、背景颜色等...

然后使用 CustomPreferenceCategory 而不是 PreferenceCategory

当然你可以用 Preference 做同样的事情(我不确定你是想要自定义标题还是自定义列表项——类别将是标题,偏好是一个普通的列表项)

关于android - 自定义首选项标题布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38078536/

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