sla*_*boy 0 android kotlin android-jetpack-compose
我希望能够将所有修改器属性设置为已知设备宽度或高度的百分比。我们的想法是,无需为所有手机(小型、中型或大型手机)支持不同的屏幕尺寸。所有手机都应具有与当前设备宽度或高度相关的相同可组合尺寸。我们应该只为tablets或实现不同的屏幕尺寸landscape mode。
我知道对于宽度、高度,我们可以使用.fillMaxWidth(0.9f),并设置与 Constraints.maxWidth 相匹配的浮点值 [from = 0.0, to = 1.0] 乘以我们指定的分数。
我想指定类似于 dp、sp 的修饰符属性,但使用 dw(设备宽度)和 dh(设备高度)之类的东西。
这是使用androidx.window:window:1.0.0库获取实际设备宽度和高度并将其转换为Dp 的简单实现。dw,dh当您希望最小边始终与宽度匹配并且最大边始终与高度匹配时,请使用。adw,adh或者当您希望宽度和高度根据设备旋转而变化时使用:横向或纵向模式。
要使用该库,只需包含依赖项
implementation 'com.github.slaviboy:JetpackComposePercentageUnits:1.0.0'
Run Code Online (Sandbox Code Playgroud)
现在我们可以设置offset, padding, width, height, border, font size...根据设备宽度或高度进行缩放。
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// init device width and height
initSize()
setContent {
// your UI here
Text(
text = "Hello",
fontSize = 0.04.sh,
color = Color.Green,
modifier = Modifier
.offset(x = 0.07.dw, y = 0.2.dh)
.border(
width = 0.01.dw,
color = Color.Red,
shape = RoundedCornerShape(0.05.dw)
)
)
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,所有内容都根据设备宽度或高度进行缩放,并且可组合项将匹配每个手机尺寸。
| 归档时间: |
|
| 查看次数: |
4759 次 |
| 最近记录: |