在data-attr来了之后, $.fn.data() 也支持用来读取DOM上面的data-attr,但是,它会缓存这个结果到DOM内部的数据对象,他会缓存,缓存,缓存。...后续对这个key的所有读写操作,其实都是操作的这个数据缓存,而DOM上面的data-attr并不会发生任何变化。...如果你有一些样式,是希望同步这个data-attr的状态的,用 $.fn.data() 来操作就会发生一些奇怪的事情(之前一次没细看jQuery这块的实现,只是发现出来的效果怪怪的),建议改用 $....fn.attr() 方法或者JS原生方法。...附: 为了和 $.data() 做区分,我这里用 $.fn.attr() 和 $.fn.data() 这种jQuery原型链上的方法来表示 $(selector).data()
class,但同时也多了一个自定义属性unicode="",这是一个很有用的属性,通常我们需要动态的更换图标时,我们就可以把这个unicode写在标签上,那怎么才能显示呢?...渲染这整个标签,不然图标始终显示不出来) 所以你会发现在css中你用attr这个属性就可以动态的加载标签上的unicode了 css的Attr 在以上我们的图标用unicode就可以加载图标,同时我们也知道利用...(data-content); display: inline-block; } 我们使用了css3的函数var,以及calc,还有attr,这些都是css3的函数,注意var中的变量必须在...因此我们就用css中attr结合js实现了一个计数器功能,关于cssattr还有更多待挖掘的功能,在动态改变图标等,attr是一种不错的选择方案 总结 加载阿里矢量图标除了使用class与svg,我们也可以使用...attr加载使用unicode css3函数var,calc,attr的使用 使用css的attr特性简单实现计数器的效果 本文示例code example[4] 参考资料 [1]iconfont: https
// 创建view View view = tryCreateView(parent, name, context, attrs); // 如果 view 为null,使用默认的创建...// 创建view View view = tryCreateView(parent, name, context, attrs); // 如果 view 为null,使用默认的创建...,其中使用的mLocalFeatures这个: public boolean requestFeature(int featureId) { final int flag = 1<<featureId...= 0; } 当调用supportRequestWindowFeature,设置的代码如下,使用的mWindowNoTitle,标志位改变了 @Override public boolean requestWindowFeature...方法时,其中的 tryCreateView 方法会使用到factory2 当factory2不为空时,就会用factory2去创建View,这个view是把TextView替换为了 AppCompatTextView
注意事项 使用include最常见的问题就是findViewById查找不到目标控件,这个问题出现的前提是在include时设置了id,而在findViewById时却用了被include进来的布局的根元素...例如上述例子中,include时设置了该布局的id为my_title_ly,而my_title_layout.xml中的根视图的id为my_title_parent_id。...例如我们通过一个ViewStub来惰性加载一个消息流的评论列表,因为一个帖子可能并没有评论,此时我可以不加载这个评论的ListView,只有当有评论时我才把它加载出来,这样就去除了加载ListView带来的资源消耗以及延时...index 注意事项 判断是否已经加载过, 如果通过setVisibility来加载,那么通过判断可见性即可;如果通过inflate()来加载是不可以通过判断可见性来处理的,而需要使用方式2来进行判断...Merge 其实就是减少在include布局文件时的层级。标签是这几个标签中最让我费解的,大家可能想不到,标签竟然会是一个Activity,里面有一个LinearLayout对象。
7.2 基本控件的使用 Android 中的基本视图是 GUI 中通常直接使用的一些类,例如:字符区域、按钮、图像区域、图像按钮、进度条等。...ToggleButton 比较简单,包含开关两个状态,可以显示不同的文本 textOn(开)和 textOff(关),在使用 ToggleButton 时主要根据CompoundButton 的 isChecked...例如,根据上述的继承关系,TextView中能使用的所有内容,都可以在Button中使用,在Button中能使用的内容,都可以在ToggleButton使用。...ImageButton 除了可以当作按钮来使用,其他方面和 ImageView 基本一致。...ImageButton 和 ImageView 的区别也仅在于外观和使用方式上,主要的图像设置方法和 ImageButton 中的一样。
attr/colorControlActivated" /> attr/colorControlActivated" android:textSize="36sp" /> attr/colorButtonNormal" android:paddingTop="50dp"> ImageButton android:id="@+id/imageButton...mediaPlayer.pause(); bofang.setImageResource(R.drawable.music_play); //开始播放时的图片...mediaPlayer.reset(); try { mediaPlayer=MediaPlayer.create(this,R.raw.shaonian); //点击重新播放时,
LayoutInflater的使用中重点关注inflate方法的参数含义: inflate(xmlId, null); 只创建temp的View,然后直接返回temp。...这个是在执行LayoutInflater的setFactory方法时抛出的异常。因为mFactorySet=true。。。。这个时候我们发现LayoutInflater的Factory已经被设置过了。...具体是在哪里设置的呢?我们看看下边LayoutInflater.Factory在Android源码中的使用部分内容。...LayoutInflater.Factory在Android源码中的使用 在我们开发过程是很少使用到LayoutInflater.Factory,但是Android在supportv7中就使用,我们来学习一下...AppCompatDelegateImplV7中,找到了setFactory的实际使用意义实际意思。
attr/gdActionBarBackground" bar:type="normal" bar:title="Test ActionBar" /> 这个自定义...title就是actionbar的上的标题;type是区分这个actionbar的上左边item的布局,有三种类型,一种是normal:左边是一个显示主页的imagebutton和显示title的textview... mActionBar = (ActionBar) findViewById(R.id.gd_action_bar); // 添加右边的具体的item,其实是imagebutton...// 它内部自己封装了一些type,比如refresh、search,主要就是直接使用它内置的一些图片作为imagebutton的src // 后面是该imagebutton的id,可以在values...onActionBarItemClicked(int position) { if (position == ActionBar.OnActionBarListener.HOME_ITEM) { // 当按左边的主页按钮时所触发的操作
android:attr/windowContentOverlay" /> 复制代码 到这里,installDecor()方法中比较重要的地方已经看完了。...(layoutResID, mContentParent); 复制代码 这个 layoutResID 就是 调用 setContentView 时传入的。...当我们在使用这种 : LayoutInflater.from(this).inflate(layout(), parent) 代码时,就会调用到 AppCompatDelegateImpl 类中 实现...LayoutInflater.from(this).inflate(layout(), null) 时,是如何调用到 AppCompatDelegateImpl 中的 onCreateView 中的...,并且是一个单例 2,如果使用 LayoutInflater 三种使用方式,在开头说过了 3,布局是如果被实例化的 最终布局是通过反射进行实例化的 4,mFactory 的作用 拦截
使用include标签,我们只需要把这个会被多次使用的顶部栏独立成一个xml文件,然后在需要使用的地方通过include标签引入即可。...注意事项 使用include最常见的问题就是findViewById查找不到目标控件,这个问题出现的前提是在include时设置了id,而在findViewById时却用了被include进来的布局的根元素...: // 使用include时设置的id,即R.id.my_title_ly View titleView = findViewById(R.id.my_title_ly) ; // 通过titleView...标签也是一样的,我们看到遇到include标签时,会调用parseInclude函数,这就是对标签的解析,我们看看吧。...最后会把目标布局的根元素返回,因此我们在调用inflate()函数时可以直接获得根元素,省掉了findViewById的过程。
android:attr/windowContentOverlay" /> 到这里,installDecor()方法中比较重要的地方已经看完了。...(layoutResID, mContentParent); 这个 layoutResID 就是 调用 setContentView 时传入的。...当我们在使用这种 : LayoutInflater.from(this).inflate(layout(), parent) 代码时,就会调用到 AppCompatDelegateImpl 类中 实现...LayoutInflater.from(this).inflate(layout(), null) 时,是如何调用到 AppCompatDelegateImpl 中的 onCreateView 中的...,并且是一个单例 2,如果使用 LayoutInflater 三种使用方式,在开头说过了 3,布局是如果被实例化的 最终布局是通过反射进行实例化的 4,mFactory 的作用 拦截
jQuery判断checked是否是选中状态的三种方法: .attr('checked') // 返回:"checked"或"undefined" ; .prop('checked') // 返回true.../false .is(':checked') // 返回true/false //别忘记冒号哦 jQuery赋值checked的几种写法: $("#checked").attr("checked...true}); //map键值对 $("#checked").prop("checked",function(){ return true;//函数返回true或false }); 在项目实际应用中,使用....attr()方法时,在多次选中 取消 再选中之后.attr()方法就不生效了。...所以正确的用法应该是使用.prop()方法。可以保证每次都会生效。
官方建议使用 ImageButton 替代普通的 ImageView 。...相信不少同学在定义自己Bar时,肯定使用的 Image 作为返回按钮,这也是很常见的,但为什么官方建议大家使用 ImageButton 呢?...主要是因为在适配无障碍模式时,无障碍服务在读取到 Image 时,如果此时增加了描述信息,则会 直接读出文本名字 ,但如果此时这是一个可以交互的按钮呢?...对于我们普通用户而言,大家知道这里可以点击,但是他们并不知道,所以在这里如果使用 ImageButton ,此时在无障碍下的反馈就是: xxxApp,返回 按钮。...在无障碍下点击时,则只会读取描述,而使用了 ImageButton 或者 Button 的在无障碍模式下会被读作xx [按钮] ,相比起来,后者更象征着这具有一个行为作用,而前者仅仅像一个普通文本,这对视障用户而言
),Android官方建议使用 ImageButton 替代普通的 ImageView 。...相信不少同学在定义自己Bar时,肯定使用的 Image 作为返回按钮,这也是很常见的,但为什么官方建议大家使用 ImageButton 呢?...主要是因为在适配无障碍模式时,无障碍服务在读取到 Image 时,如果此时增加了描述信息,则会 直接读出文本名字 ,但如果此时这是一个可以交互的按钮呢?...对于我们普通用户而言,大家知道这里可以点击,但是他们并不知道,所以在这里如果使用 ImageButton ,此时在无障碍下的反馈就是: xxxApp,返回 按钮。...在无障碍下点击时,则只会读取描述,而使用了 ImageButton 或者 Button 的在无障碍模式下会被读作xx [按钮] ,相比起来,后者更象征着这具有一个行为作用,而前者仅仅像一个普通文本,这对视障用户而言
android:attr/windowContentOverlay" /> 可以知道这个mContentParent为一个FrameLayout,这时候我们应该知道,我们...比如说,在android21以前一般是使用控件TextView等控件,在21以后出了相关的AppCompat控件,这个时候怎么让开发者写的TextView自动转换为AppCompatTextView呢?...widget.AppCompatTextView; import android.util.AttributeSet; import android.util.Log; import android.view.InflateException...view = new AppCompatSpinner(context, attrs); break; case "ImageButton...createView(Context context, String name, String prefix) throws ClassNotFoundException, InflateException
FAFAFA 25dp android:colorControlHighlight为点击后波纹的颜色...android:radius为效果半径(实测) 2、一个ImageButon ImageButton android:id="@+id/view_back" android:layout_width...android:attr/selectableItemBackgroundBorderless" android:contentDescription="@string/text_back"...src="@drawable/ic_arrow_back_white_24dp" android:theme="@style/Rip 其中重要属性android:background要设置为无边界的波纹...android:attr/selectableItemBackgroundBorderless" 设置风格属性android:theme="@style/RippleWhite"
(效果图来源于自己写的demo,双击可放大) 大家肯定对这种可滑动的导航标题并不陌生,项目中经常需要用到这种滑动切换的效果,我觉得PagerSlidingTabStrip搭配viewPager的组合最好用了...PagerSlidingTabStrip是一个开源框架,和github上面的其他开源框架使用方法一样 开源框架地址:GitHub - astuetz/PagerSlidingTabStrip: An interactive...tab = new ImageButton(getContext()); tab.setImageResource(resId); addTab(position, tab); }...设置Tab的分割线是透明的 //tabs.setDividerColor(Color.TRANSPARENT); // 设置Tab底部线的高度 mSlideTabs.setUnderlineHeight...) mSlideTabs.setSelectedTextColor(getResources().getColor(R.color.common_blue)); // 取消点击Tab时的背景色
,就是ImageButton 他有一个属性android:clickable="false" 注意点在于为LinearLayout设置监听器的时候,会出现点击文字能响应监听事件,而点击图片不会响应的情况...,问题在于LinearLayout会把监听事件先交给ImageButton,因为它是可以点击的,而ImageButton中未实现监听器,所以不能响应。...(大家可以试试没有这行属性的情况下,点击图片是否有响应) 还有4个对应功能的layout 1 attr/textAppearanceMedium" /> 14 15 Mainactivity.java文件 1 package com.example.viewpager_tab...mweixin_image; 34 private ImageButton mfrd_image; 35 private ImageButton madd_image; 36
例如,在连接到SQL Server数据库时,使用 SQL Server 连接器而不是 ODBC 连接器不仅为你提供了更好的获取数据体验,而且SQL Server连接器还提供可改善体验和性能的功能,例如查询折叠...这也是筛选出与案例无关的任何数据的最佳做法。 这样,你便能更好地关注手头的任务,只需显示数据预览部分相关的数据。可以使用自动筛选菜单来显示列中找到的值的不同列表,以选择要保留或筛选掉的值。...还可以使用搜索栏来帮助查找列中的值。还可以利用特定于类型的筛选器,例如日期、日期时间甚至日期时区列 的上 一个筛选器。...如果可能,请先执行此类流式处理操作,最后执行任何成本更高的操作。 这有助于最大程度地减少每次向查询添加新步骤时等待预览呈现的时间。...使用正确的数据类型Power Query中的一些功能与所选列的数据类型相关。 例如,选择日期列时,“添加列”菜单中的“日期和时间”列组下的可用选项将可用。 但如果列没有数据类型集,则这些选项将灰显。
反复试验,发现跟内部的子查询有关。