android采坑记录

这篇博客记录了Android开发过程中的各种坑,包括ScrollView匹配高度问题、ViewPager高度自适应、WebView与ScrollView配合滚动、权限申请、文件上传错误、时间戳转换、Activity启动模式等,并给出了相应的解决策略。
摘要由CSDN通过智能技术生成

ScrollView控件中的match_parent无效

添加android:fillViewport=“true”属性

轮播banner,数据源更新界面无法更新

其实也不是无法更新,内部有viewPager首页刷新无效,会在之后的pager里显示新的数据源中的东西。内部已经调用了adapter.notifyDataSetChanged()。这是viewPager的机制可以参考viewPager刷新问题详解

ScrollView嵌套横向滑动控件时冲突

ScrollView嵌套横向滑动控件时冲突问题

ViewPager高度自适应,获取高度为0

使用viewpager高度自适应时 MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)拿到的高度都是0,我使用的是databing,后来发现是pager.setObjectForPosition(binding.getRoot(),position);这样拿到整个界面的第一层布局,高度似乎无法撑开。后来使用 pager.setObjectForPosition(binding.recycler,position);对recycler的高度设置,它的外层是ScrollerView,可以将界面撑开,这样得到的高度才是fragment中全部控件的高度。viewPager高度自适应

WebView内嵌在Scrollerview中,一起上下滚动

webview内嵌在Scrollerview中,上下滚动,只能滚动webview,要webview与scrollerview一起滚动,可以在ScrollerView中加 android:descendantFocusability="blocksDescendants"抢占焦点即可实现。

使用@Nullable PersistableBundle persistentState界面空白

在activity中使用

public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);

这是5.0以上新出的方法,给予界面持久化的能力,但需要在AndroidManifest.xml的activity标签下添加android:persistableMode="persistAcrossReboots"属性,不然界面会无法加载处理,显示一片空白。

ViewPager+Fragment更新fragment无效

根据业务需要每次刷新都是重新创建fragment,但除了第一次,每次获取的fragment中的值是空。后来发现是因为使用了FragmentPagerAdapter,FragmentPagerAdapter中的instantiateItem方法会去判断是否有fragment的缓存,如果有就使用那个,所以每次都拿到的是另一个对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值