JessYanCoding / JessYanCoding/AndroidAutoSize

Compose 没有效果

未關閉
#457 0 則留言 2 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

主要語言
Java
星號
13.7k
分支
2k
PR 合併指標
30 天內沒有已合併 PR

描述

Environment
  • Autosize Version: v1.2.1
  • Target Android Version: Android9.0
  • Device Model: 华为WGR-W09
  • Device Resolution: 2560x1600
  • Design Size On AndroidManifest: 1920 1080
Bug Description:

App 架构为单Activity 多Fragment + Compose 架构,
原生View 有缩放效果,Compose 没有,

Log:
2023-12-11 20:26:06.382 12929-12929 FragmentMain            tech..                      I  SearchView displayMetrics = DisplayMetrics{density=1.3333334, width=2560, height=1600, scaledDensity=1.3333334, xdpi=239.058, ydpi=239.058, densityDpi=213, noncompatWidthPixels=2560, noncompatHeightPixels=1600, noncompatDensity=2.0, noncompatDensityDpi=320, noncompatXdpi=239.058, noncompatYdpi=239.058}
2023-12-11 20:26:06.382 12929-12929 FragmentMain            tech..                      I  SearchView displayMetrics = DensityImpl(density=2.0, fontScale=1.0)
2023-12-11 20:26:06.560 12929-12929 FragmentMain            tech..                      I  SearchView 627.dp = 836.0
2023-12-11 20:26:06.560 12929-12929 FragmentMain            tech..                      I  SearchView 627.dp = 836.0

Compose 在Layout 的时候 dp转 px的时候 使用的是
Density 2
fun Dp.toPx(): Float = value * density
方法。

但是 从日志中可以看到 Compose 的DensityImpl 的density 始终是2.0 没有被修改。

Related Code:
      @Stable
    fun Dp.toPx(): Float = value * density

    /**
     * Convert [Dp] to [Int] by rounding
     */
    @Stable
    fun Dp.roundToPx(): Int {
        val px = toPx()
        return if (px.isInfinite()) Constraints.Infinity else px.roundToInt()
    }
Others:

貢獻指南

這個儲存庫沒有索引到貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

研究方向

從 DensityImpl 和 Dp.toPx() 附近的 Compose 版面密度路徑開始,使用回報的 DisplayMetrics 和 Android 9.0 Huawei WGR-W09 環境作為重現情境。將 Compose 密度與現有的原生 View 縮放行為進行比較,然後確認 Compose 尺寸使用的是預期的調整後密度,而不是記錄的 2.0 值。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
android, kotlin
領域
mobile
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
需要釐清
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。