如何在 Jetpack Compose 中使用小部件?

Posted

技术标签:

【中文标题】如何在 Jetpack Compose 中使用小部件?【英文标题】:How to use widgets in Jetpack Compose? 【发布时间】:2020-04-23 12:35:38 【问题描述】:

我想使用其中的一些,但我从NumberPicker 开始,它扩展了LinearLayout,因此不能只在视图中间实例化一个实例。当然只是想要一个嵌入式数字微调器作为输入值的一种方式。

【问题讨论】:

【参考方案1】:

您现在可以对尚未为其创建特定可组合项的每个小部件使用 android Views in Compose。

@Composable
fun CustomView() 
    val selectedItem = remember  mutableStateOf(0) 

    // Adds view to Compose
    AndroidView(
        modifier = Modifier.fillMaxSize(), // Occupy the max size in the Compose UI tree
        factory =  context ->
            // Creates custom view
            CustomView(context).apply 
                // Sets up listeners for View -> Compose communication
                myView.setOnClickListener 
                    selectedItem.value = 1
                
            
        ,
        update =  view ->
            // View's been inflated or state read in this block has been updated
            // Add logic here if necessary

            // As selectedItem is read here, AndroidView will recompose
            // whenever the state changes
            // Example of Compose -> View communication
            view.coordinator.selectedItem = selectedItem.value
        
    )

【讨论】:

以上是关于如何在 Jetpack Compose 中使用小部件?的主要内容,如果未能解决你的问题,请参考以下文章

Jetpack Compose ScrollableTabRow 如何调整最小宽度

如何在 Android Jetpack Compose 中使用字符串资源?

如何将 CameraView 与 Jetpack Compose 一起使用?

如何在 Android Jetpack Compose 中结合使用 LazyColumn stickyHeader 和 Paging?

如何使用 JetPack Compose 在 LazyColumn 项目中单击导航到详细视图?

如何在 jetpack compose 中使用改造 API 创建列表视图/网格视图/回收器视图