2 gentlemantt gentlemantt 于 2014.04.23 17:01 提问

无法再android系统setting中的actionbar中添加switch

在系统setting中添加了一个自己的选项。可惜在界面中的actionbar上无法添加switch
系统的蓝牙setting中有相同的结构。源码的添加switch代码如下:
大神们!!!求解啊!!!!!!
Activity activity = getActivity();

    Switch actionBarSwitch = new Switch(activity);

    if (activity instanceof PreferenceActivity) {
        PreferenceActivity preferenceActivity = (PreferenceActivity) activity;
        if (preferenceActivity.onIsHidingHeaders() || !preferenceActivity.onIsMultiPane()) {
            final int padding = activity.getResources().getDimensionPixelSize(
                    R.dimen.action_bar_switch_padding);
            actionBarSwitch.setPadding(0, 0, padding, 0);
            activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
                    ActionBar.DISPLAY_SHOW_CUSTOM);
            activity.getActionBar().setCustomView(actionBarSwitch, new ActionBar.LayoutParams(
                    ActionBar.LayoutParams.WRAP_CONTENT,
                    ActionBar.LayoutParams.WRAP_CONTENT,
                    Gravity.CENTER_VERTICAL | Gravity.RIGHT));
        }
    }

2个回答

Diaoliangwang
Diaoliangwang   2015.10.23 11:01

系统里根本不是这样实现的 是自定义的switchbar 里面那个也不是switch 控件,是用toggleslider实现的

u012301841
u012301841   2016.04.04 16:23

楼主搞错了,系统的蓝牙界面根本不是这样实现的。在系统的 com.android.settings.widget 包下,有个SwitchBar控件,是写在 settings的布局文件中的,文件名为:
R.layout.settings_main_prefs。(我现在看的是5.0的源码,4.0的好像有点不一样)

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android UI ActionBar功能-在 Action Bar 上添加按钮
在ActionBar上添加按钮实现某些功能最常见的Application的功能如:在ActionBar上添加一个搜索按钮: 首先官方文档说明:http://wear.techbrood.com/training/basics/actionbar/setting-up.html 下面是3.0版本以前和3.0版本以后在添加按钮的时候要注意的地方: 下面是具体代码: 导入
Settings修改一:增加Switch控键
系统设置一级菜单上wifi和蓝牙有个Switch按键,而且它和二级菜单上的Switch是同步的。而开发者选项菜单只是在二级菜单上有Switch控键,一级没有,于是产生了在一级菜单上增加一个Switch控键的想法。 跟下代码发现: // http://blog.csdn.net/heymi_csdn static int getHeaderType(
Android Settings源码简单分析之列表项Switch
最近简单看了Android的源代码,从Settings模块开始看起,
actionbar中增加setting菜单 自定义
actionbar中增加setting菜单,用PopupWindow实现的,代码简单
Android Settings 系统设置中 PreferenceActivity点击Header是如何处理的?
转载请注明出处:http://blog.csdn.net/droyon/article/details/18009373   本文讲述PreferenceActivity中单击事件的处理,重点记述mCurrentHeader以及设置源代码Settings中的mLastHeader、mCurrentHeader、mParentHeader的作用。主要以多屏幕为例。   在Pr
Android官方开发文档Training系列课程中文版:添加ActionBar之添加Action按钮
添加Action按钮ActionBar按钮允许在当前的APP上下文内添加很多重要的功能按钮。这样便会通过图标或者文字作为功能按钮直接出现在ActionBar上。功能按钮如果没有空间或者是不足够重要的按钮都会隐藏在隐藏按钮下。在XML指定功能所有的功能按钮和其它在隐藏按钮下的功能按钮都可以通过XML菜单资源来定义。为了添加功能到ActionBar,需要在res/menu/目录下创建一个新的xml文件。
超详细!ActionBar 使用·详解
一、ActionBar介绍   在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个非常重要的交互元素,Action Bar取代了传统的tittle bar和menu,在程序运行中一直置于顶部,对于Android平板设备来说屏幕更大它的标题使用Action Bar来设计可以展示更多丰富的内容,方便操控。   二、ActionBar的功能
Android ActionBar的基本用法
本文翻译了这篇文章:Using the Android action bar (ActionBar) - Tutorial 1、ActionBar的简介 ActionBar位于Activity的顶部,可用来显示activity的标题、Icon、Actions和一些用于交互的View。它也可被用于应用的导航。 ActionBar 是在Android 3.0(API 11)中加入到SK中的,
Actionbar的基本用法以及Actionbar中menu里面的图标显示控制问题
添加Actionbar 一开始发现一个问题 到底是用ActionBarActivity还是普通的Activity。其实不用纠结什么,ActionBarActivity默认有个标题栏,创建activity的时候自动就有了,activity默认没有标题栏,但是你可以在代码中手动添加一个标题栏。 Actionbar位于传统标题栏的位置,也就是显示在屏幕的顶部。 Actionbar提供了如下功能:
Android ActionBar添加menu按钮
记录一下如何在ActionBar添加menu按钮。