国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android Compose 如何獲取位置和大小。

這篇具有很好參考價值的文章主要介紹了Android Compose 如何獲取位置和大小。。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

    Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
                GetPositionAndSizeExample()
            }
package com.example.test_new_virsion

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.size
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.geometry.Rect
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.boundsInParent
import androidx.compose.ui.layout.onGloballyPositioned
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp

@Composable
fun GetPositionAndSizeExample() {
    val boxRect = remember { mutableStateOf(Rect.Zero) }

    Box(
        modifier = Modifier
            .size(100.dp)
            .background(Color.Blue)
            .onGloballyPositioned { coordinates ->
                boxRect.value = coordinates.boundsInParent()
            },

        ) {
        Text(text = "Left: ${boxRect.value.left} Top: ${boxRect.value.top} Right: ${boxRect.value.right} Bottom: ${boxRect.value.bottom}")
    }


    // 這里可以使用 boxRect.value 獲取到Box組件的位置和大小信息
    // boxRect.value.left - 左側(cè)位置
    // boxRect.value.top - 頂部位置
    // boxRect.value.right - 右側(cè)位置
    // boxRect.value.bottom - 底部位置
    // boxRect.value.width - 寬度
    // boxRect.value.height - 高度
}

@Preview(showBackground = true)
@Composable
fun GetPositionAndSizeExamplePreview() {
    MaterialTheme {
        GetPositionAndSizeExample()
    }
}

Android Compose 如何獲取位置和大小。,# 038Compose,android,ui

? boxRect.value = coordinates.boundsInParent() 是針對當(dāng)前父布局。如果想針對整個手機(jī)可以用文章來源地址http://www.zghlxwxcb.cn/news/detail-715969.html

            val position = coordinates.positionInWindow()
                                val top =  position.y-StatusBarUtil.getStatusBarHeight(context)
                                viewModel.boxRect.value = Rect(
                                    left = position.x,
                                    top = top,
                                    right = position.x + coordinates.size.width,
                                    bottom = top + coordinates.size.height
                                )
                                LL.e(
                                    TAG,
                                    " \"Left: ${viewModel.boxRect.value.left} Top: ${viewModel.boxRect.value.top} Right: ${viewModel.boxRect.value.right} Bottom: ${viewModel.boxRect.value.bottom}\""
                                )
    //獲取狀態(tài)欄高度
    fun getStatusBarHeight(context: Context): Int {
        var result: Int = 0
        val resourceId: Int = context.getResources().getIdentifier(
            "status_bar_height", "dimen", "android"
        )
        if (resourceId > 0) {
            result = context.getResources().getDimensionPixelSize(resourceId)
        }
        return result
    }

到了這里,關(guān)于Android Compose 如何獲取位置和大小。的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Android Compose 新聞App(三)網(wǎng)絡(luò)數(shù)據(jù)Compose UI顯示加載、Room和DataStore使用

    Android Compose 新聞App(三)網(wǎng)絡(luò)數(shù)據(jù)Compose UI顯示加載、Room和DataStore使用

    正文 =============================================================== 后面的內(nèi)容涉及到樣式布局組件,內(nèi)容比較多。 一、樣式 在這里我們先進(jìn)行樣式的配置,打開ui.theme文件夾。 首先是修改Color.kt文件 val Blue200 = Color(0xFF979FF2) val Blue300 = Color(0xFF6D7DEA) val Blue700 = Color(0xFF0068C2) val Blue800 = Col

    2024年04月09日
    瀏覽(23)
  • Android Jetpack組件庫(第七部分)---UI工具包 Compose

    Android Jetpack 是 Google 推出的一整套幫助 Android 應(yīng)用程序開發(fā)的庫、工具包和架構(gòu)指南,旨在為 Android 應(yīng)用程序提供更快,更輕松,更穩(wěn)定的開發(fā)體驗。自推出以來已經(jīng)發(fā)展成了一個龐大的技術(shù)生態(tài)系統(tǒng),包括了許多使用方便、功能強(qiáng)大的庫,以下是其中一些新特性、新組件:

    2024年01月16日
    瀏覽(24)
  • Android-11--UI-與-Compose,看看還有哪些你不知道的?

    Android-11--UI-與-Compose,看看還有哪些你不知道的?

    Android 11?的新功能之一是應(yīng)用能夠在屏幕鍵盤打開和關(guān)閉之間無縫過渡,以及改進(jìn)的WindowInsets?API,實現(xiàn)對鍵盤 (IME) 等控件的控制。要了解如何將其添加到您的應(yīng)用中,歡迎訪問相關(guān)視頻、博文以及示例應(yīng)用… Android 11https://developer.android.google.cn/android11 WindowInsetshttps://develop

    2024年04月13日
    瀏覽(16)
  • Android Jetpack Compose 用計時器demo理解Compose UI 更新的關(guān)鍵-------狀態(tài)管理(State)

    Android Jetpack Compose 用計時器demo理解Compose UI 更新的關(guān)鍵-------狀態(tài)管理(State)

    我們都知道了Compose使用了聲明式的開發(fā)范式,在這樣的范式中,UI的職責(zé)更加的單一,只會對數(shù)據(jù)狀態(tài)的變化作出反應(yīng),如果數(shù)據(jù)狀態(tài)沒有發(fā)生變化,則UI就永遠(yuǎn)不會自行的改變。假如我們把Composable的執(zhí)行看成是一個函數(shù)的運(yùn)算的話,那么狀態(tài)就是函數(shù)的參數(shù),輸出就是生成

    2024年02月09日
    瀏覽(36)
  • Android Jetpack Compose 用計數(shù)器demo理解Compose UI 更新的關(guān)鍵-------狀態(tài)管理(State)

    Android Jetpack Compose 用計數(shù)器demo理解Compose UI 更新的關(guān)鍵-------狀態(tài)管理(State)

    我們都知道了Compose使用了聲明式的開發(fā)范式,在這樣的范式中,UI的職責(zé)更加的單一,只會對數(shù)據(jù)狀態(tài)的變化作出反應(yīng),如果數(shù)據(jù)狀態(tài)沒有發(fā)生變化,則UI就永遠(yuǎn)不會自行的改變。假如我們把Composable的執(zhí)行看成是一個函數(shù)的運(yùn)算的話,那么狀態(tài)就是函數(shù)的參數(shù),輸出就是生成

    2024年02月08日
    瀏覽(19)
  • Android WebView 獲取html頁面聚焦input在頁面的位置

    Android WebView 獲取html頁面聚焦input在頁面的位置,實現(xiàn)代碼如下: 注意: WebView 要設(shè)置setJavaScriptEnabled支持JavaScript調(diào)用 返回的數(shù)值是以dp為單位,使用時需要轉(zhuǎn)換為像素px

    2024年02月15日
    瀏覽(22)
  • Android開發(fā):RecyclerView獲取item位置的幾種方法比較

    ????????當(dāng)使用 RecyclerView 來展示列表數(shù)據(jù)時,獲取 item 的位置是一個常見的需求。RecyclerView 提供了多種獲取 item 位置的方法,包括 getAdapterPosition() 、 getBindingAdapterPosition() 、 getAbsoluteAdapterPosition() 等等。這些方法的實現(xiàn)原理和返回值有所不同,因此在實際使用時需要根據(jù)

    2023年04月20日
    瀏覽(100)
  • Android 動態(tài)代碼設(shè)置view寬高參數(shù),運(yùn)行后UI大小沒有改變問題

    Android 動態(tài)代碼設(shè)置view寬高參數(shù),運(yùn)行后UI大小沒有改變問題

    ? ? ?日常開發(fā)中遇到一個需求,就是根據(jù)業(yè)務(wù)邏輯,動態(tài)改變一個view控件的大小。這種需求也是比較常見的,但是小白比較容易遇到一個小問題,就是代碼重新設(shè)置了view的寬高大小,運(yùn)行后發(fā)現(xiàn)view沒有發(fā)生改變。 ???????? 如下圖,1,橫屏 2,正方形,3,豎屏 ? ? ?

    2024年02月16日
    瀏覽(23)
  • Android開發(fā)中的前五個代碼異味:Jetpack Compose UI和MVVM

    Android開發(fā)中的前五個代碼異味:Jetpack Compose UI和MVVM

    代碼異味是指軟件代碼中潛在問題的指標(biāo),可能并不一定是錯誤,但可能會導(dǎo)致問題,如增加維護(hù)復(fù)雜性、降低性能或降低可讀性。我們將探討Android開發(fā)中的前五個代碼異味,其中包括使用Jetpack Compose UI和Model-View-ViewModel(MVVM)架構(gòu)的示例。 上帝對象或上帝類是指試圖做太

    2024年02月02日
    瀏覽(31)
  • 如何修改Android Studio的.android/.gradle文件夾存放位置?

    如何修改Android Studio的.android/.gradle文件夾存放位置?

    ①首先我們關(guān)閉Android Studio(若未啟動直接跳過此步驟); ②然后我們在目標(biāo)位置新建一個文件夾,用來存放原先位于用戶目錄的 .android/.gradle 兩個文件夾,以E盤Android_Studio_Data文件夾為例; 【注:建議文件夾名不留空格】 ③將原先位于用戶目錄的 .android/.gradle 兩個文件夾自

    2024年02月06日
    瀏覽(109)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包