此篇主要记录我在开发中遇到的问题与问题的解决方式,用于自我笔记~ 持续写入 - -!
搭配篇
目录
- 1.TextView与代码中输入人民币符号 ¥ ,显示之后为单杠(如魅族显示正常,小米Note4则显示为单杠)
- 2.CircleImageView(圆角化)与 Glide图片加载 并发产生图片展示不完全
- 3.NestedScrollView嵌套RecyclerView时滑动不流畅问题
- 4.NestedScrollView嵌套RecyclerView时布局自动滑动到RecyclerView处
- 5.父布局内的ImageView(亦或子布局),展示不完整
- 6.popupWindow设置高度为MATCH_PARENT时,无法遮挡住状态栏
- 7.APP崩溃,导致一级页面的fargmentUI层叠
- 8. 使 PopupWindow 点击区域外不消失,同时onTouch无法穿透到底层布局
- 9.华为手机通过程序内自动升级安装完成之后,无法自动唤醒app
- 10.ImageView src展示的图片显示不全
- 11.android:textStyle="italic"设置斜体失效
1.TextView与代码中输入人民币符号 ¥ ,显示之后为单杠(如魅族显示正常,小米Note4则显示为单杠)
**解决:**简单暴力的解决方法,复制下面这个符号:¥ 到你的代码中,就不会了。
2.CircleImageView(圆角化)与 Glide图片加载 并发产生图片展示不完全
解决:CircleImageView 内加入 android:scaleType="centerCrop"
如:
<com.bakheet.garage.widget.CircleImageView
android:id="@+id/iv_info_icon"
android:layout_width="@dimen/d50"
android:layout_height="@dimen/d50"
android:layout_alignParentRight="true"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:layout_marginRight="@dimen/d30"
android:scaleType="centerCrop"
tools:src="@mipmap/ic_store_logo"/>
3.NestedScrollView嵌套RecyclerView时滑动不流畅问题
解决:
//mRvIncome就是你的RecyclerView,主要拦截了ScrollView的滑动效果(我认为是这样)
mRvIncome.setNestedScrollingEnabled(false);
4.NestedScrollView嵌套RecyclerView时布局自动滑动到RecyclerView处
-
根布局(最外层布局)设置android:descendantFocusability=“blocksDescendants” ;
-
RecyclerView配套设置
当前布局设置
android:nestedScrollingEnabled="false"
父布局设置
android:focusable="true"
android:focusableInTouchMode="true";
5.父布局内的ImageView(亦或子布局),展示不完整
解决:
//ImageView 加入这条属性
android:scaleType="fitXY"
6.popupWindow设置高度为MATCH_PARENT时,无法遮挡住状态栏
解决:
//PopupWindow加入这条属性
searchPopup.setClippingEnabled(false);
7.APP崩溃,导致一级页面的fargmentUI层叠
解决:
/**重写依赖的activity内onSaveInstanceState 方法 ;
但是格外注意: 注释调用父类方法(如文内的super.onSaveInstanceState(outState);)!!!*/
@Override
protected void onSaveInstanceState(Bundle outState) {
//super.onSaveInstanceState(outState);
}
8. 使 PopupWindow 点击区域外不消失,同时onTouch无法穿透到底层布局
解决:
- 第一步设置禁止外部事件获取
//mPopupWindow.setFocusable(false)
(1)通过setFocusable(boolean focusable)设置当前的PopupWindow是否获取焦点:true-获取焦点;
//mPopupWindow.setOutsideTouchable(false)
(2)通过setOutsideTouchable(boolean touchable)设置点击当前的popupWindow区域外的touch事件是否有效;(默认为false)
- 第二步防止事件穿透,重写 dispatchTouchEvent
@Overridepublic boolean dispatchTouchEvent(MotionEvent event){
if(mPopupWindow!=null&&mPopupWindow.isShowing()){
return false;
//源码建议返回true表示自身消费这个事件,不传递给子view,这里测试过返回true-false都可以
}
return super.dispatchTouchEvent(event);
}
9.华为手机通过程序内自动升级安装完成之后,无法自动唤醒app
//AndroidMainfest 内加入此权限
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
10.ImageView src展示的图片显示不全
显示问题主要在于scaleType属性,常规设置有俩种
//XML中
android:scaleType="centerInside"
//代码中
imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
三种类型
- 以FIT_开头的4种,它们的共同点是都会对图片进行缩放;
- 以CENTER_开头的3种,它们的共同点是居中显示,图片的中心点会与ImageView的中心点重叠;
- ScaleType.MATRIX,这种就直接翻到最后看内容吧;
八种形态(xml中直接设置,代码中设置前缀 + ScaleType)
- FIT_CENTER 默认模式 - 图片会被等比缩放到能够填充控件大小,并居中展示
- FIT_START 图片等比缩放到控件大小,并放置在控件的上边或左边展示
- FIT_END 图片等比缩放到控件大小,并放置在控件的下边或右边展示
- FIT_XY 图片缩放到控件大小,完全填充控件大小展示
- CENTER 不使用缩放,ImageView会展示图片的中心部分,即图片的中心点和ImageView的中心点重叠
- CENTER_CROP 图片会被等比缩放直到完全填充整个ImageView,并居中显示
- CENTER_INSIDE 使用此模式以完全展示图片的内容为目的
- MATRIX 该模式需要与ImageView.setImageMatrix(Matrix matrix) 配合使用,因为该模式需要用于指定一个变换矩阵用于指定图片如何展示
11.android:textStyle="italic"设置斜体失效
- 场景
android:textStyle="italic"
- 解决方式
android:textStyle="italic"
android:typeface="monospace"