android - 替换 API 10 的resolveSizeAndState?

标签 android

在 API 10 android 中使用resolveSizeAndState 的最佳方法是什么? 我四处搜寻,却陷入困境。

我已经将 src 代码重写为这个,它无论如何都可以工作,但是安全吗?

private int resolveSizeAndState2(int size, int measureSpec, int childMeasuredState) {
    int result = size;
    int specMode = MeasureSpec.getMode(measureSpec);
    int specSize =  MeasureSpec.getSize(measureSpec);
    switch (specMode) {
    case MeasureSpec.UNSPECIFIED:
        result = size;
        break;
    case MeasureSpec.AT_MOST:
        if (specSize < size) {
            result = specSize | MEASURED_STATE_TOO_SMALL;
        } else {
            result = size;
        }
        break;
    case MeasureSpec.EXACTLY:
        result = specSize;
        break;
    }
    return result | (childMeasuredState&MEASURED_STATE_MASK);
}

最佳答案

使用

ViewCompat.resolveSizeAndState()

应该可以

关于android - 替换 API 10 的resolveSizeAndState?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18865528/

相关文章:

java - 在Android中扩展抽象类: A LocationProvider

Android - Rails 通信

android - 无法执行 dex : method ID not in [0, 0xffff]:65536

android - 膨胀页脚 View 很慢

java - 为什么这里会发生 ArrayIndexOutOfBoundsException?

java - 一些 Android 手机在屏幕底部和右侧切断 UI

android - RecyclerView - 在 notifiyItemInserted(0) 之后保持在 0 位置

android - 如何格式化 MPAndroidChart 中的值?

Android 7.0 (Nougat) 打盹模式停止 Web 服务

java - 广播组崩溃