当前位置:   article > 正文

Android Settings源码结构分析与自实现_android settings 结构

android settings 结构

最近的项目一直是按照PRD与高清,修改系统设置,调整布局、间距、颜色,涉及到一些流程的更改与自定义控件,以及对settings源码结构的研究。在项目相对空闲是,做个整理记录。由于项目依赖系统源码环境,而且在赶项目的时候,只能以最快的速度解决当前的问题,而下面的设计的代码与效果图,都是个人封装的DEMO测试,毕竟不能仅仅只是最求项目的解决过关,学过用过,就应该做点总结,毕竟我觉得很多东西,在赶项目的时候是无法去过多的仔细研究,所以有居多“废代码”,很多地方是值得仔细研究与优化改进的。

首先对原生Settings的布局,及切换跳转,按照我的研究理解,做个流程的分析简介,后面会给出我的改进与实现

1.先从布局简单的说起:

在PreferenceActivity中 可以看到:

  1. @Override
  2. protected void onCreate(Bundle savedInstanceState) {
  3. super.onCreate(savedInstanceState);
  4. setContentView(com.android.internal.R.layout.preference_list_content);

系统默认会加载这个布局文件,它是一个左右分屏的,左边是一个ListView,右边是一个android.preference.PreferenceFrameLayout,左边ListView 负责切换,右边显示相应的Fragment。可以到sdk目录下查看该布局文件(sdk\platforms\android-17\data\res\layout\preference_list_content)

2.右边ListView的显示。

代码详见内部类:HeaderAdapter。

  1. //类型一,分类title,无焦点,不可点击
  2. static final int HEADER_TYPE_CATEGORY= 0;
  3. //类型二,正常的可点击的header项
  4. static final int HEADER_TYPE_NORMAL = 1;
  5. //带 switch 开关的header项
  6. static final int HEADER_TYPE_SWITCH = 2;

三种类型,分别对应的布局:

  1. case HEADER_TYPE_CATEGORY://下划线样式的TextView
  2. view = new TextView(getContext(), null,android.R.attr.listSeparatorTextViewStyle);
  1. case HEADER_TYPE_SWITCH://含有switch 控件的布局
  2. view = mInflater.inflate(R.layout.preference_header_switch_item, parent,false);

  1. case HEADER_TYPE_NORMAL:
  2. view = mInfla
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/458065
推荐阅读
相关标签
  

闽ICP备14008679号