日常小姿势~~

1. activity的背景透明theme:

android:theme="@android:style/Theme.Translucent.NoTitleBar" 

2. pro整体没有toolbar:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowNoTitle">true</item>
</style>
3. 关于view getheight() =0 的问题解决:

ViewTreeObserver viewTreeObserver = view.getViewTreeObserver();//view树绘制完成
viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        //在此处getheight则会得到正常值
    }
});

4.viewpager源码测量宽高有三种模式AT_MOST,EXACTLY,UNSPECIFIED  前两种直接读取父类测量值,如果scrollview中放viewpager的话则会走第三种。

解决方案:自定义scrollview在onmesure中给控件的高度赋值


在 Activity 的 onCreate、onStart、OnResume 生命周期中,无法直接得到 View 的宽高信息。
网上有以下几种常见的解决办法:

  1. 在 Activity#onWindowFocusChanged 回调中获取宽高。
  2. view.post(runnable),在 runnable 中获取宽高。
  3. ViewTreeObserver 添加 OnGlobalLayoutListener,在 onGlobalLayout 回调中获取宽高。
  4. 调用 view.measure(),再通过 getMeasuredWidth 和 getMeasuredHeight 获取宽高。NSPECIFIED的官方解释父容器不会对子元素加以任何约束,子元素可以是任何大小。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值