Android项目归纳 - 常见小问题

此篇主要记录我在开发中遇到的问题与问题的解决方式,用于自我笔记~ 持续写入 - -!

搭配篇

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);  

ScaleType 三类八种

三种类型

  • 以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"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

远方那座山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值