最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Jetpack Compose按鈕組件使用實例詳細講解

 更新時間:2023年04月17日 10:39:13   作者:海塔燈  
這篇文章主要介紹了Jetpack Compose按鈕組件使用實例,按鈕組件Button是用戶和系統(tǒng)交互的重要組件之一,它按照Material Design風格實現,我們先看下Button的參數列表,通過參數列表了解下Button的整體功能

概述

按鈕組件Button是用戶和系統(tǒng)交互的重要組件之一,它按照Material Design風格實現,我們先看下Button的參數列表,通過參數列表了解下Button的整體功能

@Composable
fun Button(
    onClick: () -> Unit, // 點擊按鈕時的回調
    modifier: Modifier = Modifier, // 修飾符
    enabled: Boolean = true, // 是否啟用按鈕
    interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
    elevation: ButtonElevation? = ButtonDefaults.elevation(), // 按鈕的陰影
    shape: Shape = MaterialTheme.shapes.small, 
    border: BorderStroke? = null,
    colors: ButtonColors = ButtonDefaults.buttonColors(),
    contentPadding: PaddingValues = ButtonDefaults.ContentPadding,
    content: @Composable RowScope.() -> Unit
)

Button組件的第一個參數onClick是必填項,這是按鈕組件最重要的功能,通過回調響應用戶的點擊事件,最后一個參數content也是必填項,展示按鈕的內容。Compose 的Button組件默認沒有任何UI,它僅僅是一個響應onClick的容器,它的UI需要在content中通過其他組件實現

1.普通Button按鈕

假設我們需要創(chuàng)建一個顯示文字的Button,代碼如下:

  @Composable
    fun ButtonDemo()
    {
        Button(onClick = { /*TODO*/ }) {
            Text(text = "OK")
        }
    }

運行結果:

假如我們想在按鈕文字的左邊加一個圖標,代碼如下

    @Composable
    fun ButtonIconDemo(){
        Button(onClick = { /*TODO*/ }) {
            Icon(imageVector = Icons.Filled.Done, contentDescription = null,
            modifier = Modifier.size(ButtonDefaults.IconSize))
            Spacer(modifier = Modifier.size(ButtonDefaults.IconSpacing))
            Text(text = "OK")
        }
    }

這樣就在文字“OK”的左邊加了一個打勾的圖標了

運行結果:

在傳統(tǒng)的Button中,有一個很好用的功能,就是selector,即點擊按鈕的時候,可以自定義按鈕的點擊效果,在Compose中當然也可以,Button中的參數interactionSource就是做這個事情的。interactionSource通過以下的桑格函數獲取當前組件的狀態(tài)的:

interactionSource.collectIsPressedAsState(): 判斷是否是按下狀態(tài)

interactionSource.collectIsFocusedAsState():判斷是否是獲取焦點的狀態(tài)

interactionSource.collectIsDraggedAsState():判斷是否拖動

我們可以通過實例來看下如何使用interacrtionSource來實現類似傳統(tǒng)button的selector效果,代碼如下:

    @Composable
    fun InteractionButtonDemo()
    {
        val interact = remember {
            MutableInteractionSource()
        }
        val pressState = interact.collectIsPressedAsState()
        val borderColor = if(pressState.value) Color.Green else Color.Red
        Button(onClick = { /*TODO*/ },
           border = BorderStroke(2.dp, color = borderColor),
            interactionSource = interact
        ) {
            Text(text = "Long click")
        }
    }

上面的代碼實現的是按鈕在通常情況下邊框為紅色,點擊的時候邊框為綠色

運行結果:

Button 并非唯一的可點擊組件,理論上任何Compose組件都可以通過Modifier.clickable修飾符制作成可點擊組件,而當Button被點擊的時候,需要額外進行一些事件響應處理,比如水波紋的處理,Button 的onClick在底層是通過覆蓋Modifier.clickable實現的,所以我們使用button時不要為Button覆蓋Modifier.clickable.

2.IconButton圖標按鈕

IconButton組件實際上只是Button組件的簡單封裝,它就是一個可以點擊的圖標,它一般用于應用欄中的導航或者其他的行為,我們需要在IconButton組件里面提供一個圖標組件,這個圖標組件的尺寸一般是24x24dp,看下面的例子:

   @Composable
    fun IconButtonDemo()
    {
        IconButton(onClick = { /*TODO*/ }) {
            Icon(imageVector = Icons.Filled.Favorite,
                contentDescription = null)
        }
    }

運行結果

簡單例子,不多講解

3.FloatingActionButton懸浮按鈕

FloatingActionButton懸浮按鈕代表當前頁面的主要行為,它也需要我們提供一個Icon組件,代碼如下:

    @Composable
    fun FloatButtonDemo()
    {
        FloatingActionButton(onClick = { /*TODO*/ }) {
            Icon(imageVector = Icons.Filled.ArrowBack, contentDescription = null)
        }
    }

運行結果:

懸浮按鈕其實還有一個帶文字的擴展懸浮按鈕ExtendedFloatingActionButton組件,使用方法如下:

   @Composable
    fun ExtFloatButtonDemo(){
        ExtendedFloatingActionButton(icon = {Icon(imageVector = Icons.Filled.Favorite, contentDescription = null ) },
            text = { Text(text = "我喜歡的") },
            onClick = { /*TODO*/ })
    }

運行結果:

總結

以上就是今天的內容,本文主要介紹了按鈕組件的使用,以及圖標按鈕和懸浮按鈕,這些按鈕在開發(fā)中調試和實現實際的需求都很有用,建議讀者多做練習。慢慢使用到自己的項目當中去

到此這篇關于Jetpack Compose按鈕組件使用實例詳細講解的文章就介紹到這了,更多相關Jetpack Compose按鈕組件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 深入淺析Android消息機制

    深入淺析Android消息機制

    在Android中,線程內部或者線程之間進行信息交互時經常會使用消息,這些基礎的東西如果我們熟悉其內部的原理,將會使我們容易、更好地架構系統(tǒng),避免一些低級的錯誤,通過本文給大家介紹android消息機制,感興趣的朋友一起學習吧
    2016-04-04
  • Android GridView實現滾動到指定位置的方法

    Android GridView實現滾動到指定位置的方法

    這篇文章主要介紹了Android GridView實現滾動到指定位置的方法,本文介紹了4個相關的方法,分別對它們做了講解,需要的朋友可以參考下
    2015-06-06
  • Android編程實現應用強制安裝到手機內存的方法

    Android編程實現應用強制安裝到手機內存的方法

    這篇文章主要介紹了Android編程實現應用強制安裝到手機內存的方法,涉及Android中屬性設置的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • Android 的Bitmap的修改方法

    Android 的Bitmap的修改方法

    Android 的Bitmap的修改方法,需要的朋友可以參考一下
    2013-05-05
  • Android圖像切換器imageSwitcher的實例應用

    Android圖像切換器imageSwitcher的實例應用

    這篇文章主要為大家詳細介紹了Android圖像切換器imageSwitcher的實例應用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • Android仿人人客戶端滑動菜單的側滑菜單效果

    Android仿人人客戶端滑動菜單的側滑菜單效果

    這篇文章主要介紹了Android仿人人客戶端滑動菜單的側滑特效實現代碼,小編覺得挺不錯的,分享給大家供大家參考
    2018-05-05
  • Android AOP注解Annotation詳解(一)

    Android AOP注解Annotation詳解(一)

    這篇文章主要介紹了Android AOP注解Annotation詳細介紹的相關資料,Annotation是代碼里的特殊標記,這些標記可以在編譯、類加載、運行時被讀取,并執(zhí)行相應的處理,需要的朋友可以參考下
    2017-03-03
  • Android使用CountDownTimer實現倒計時效果

    Android使用CountDownTimer實現倒計時效果

    這篇文章主要為大家詳細介紹了Android使用CountDownTimer實現倒計時效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Android?妙用TextView實現左邊文字,右邊圖片

    Android?妙用TextView實現左邊文字,右邊圖片

    這篇文章主要介紹了Android?妙用TextView實現左邊文字,右邊圖片的相關資料,需要的朋友可以參考下
    2023-07-07
  • Android開發(fā)實現Files文件讀取解析功能示例

    Android開發(fā)實現Files文件讀取解析功能示例

    這篇文章主要介紹了Android開發(fā)實現Files文件讀取解析功能,結合實例形式分析了Android針對txt文本文件的讀取、保存功能實現方法與布局操作技巧,需要的朋友可以參考下
    2017-09-09

最新評論

虹口区| 黎平县| 邹平县| 封开县| 神池县| 荔浦县| 西乡县| 霸州市| 响水县| 绍兴县| 惠安县| 雅安市| 油尖旺区| 当阳市| 望城县| 揭东县| 永川市| 灵台县| 综艺| 司法| 镶黄旗| 铜川市| 石屏县| 阳谷县| 阜平县| 甘肃省| 青州市| 邯郸市| 轮台县| 茂名市| 阿巴嘎旗| 天气| 玛纳斯县| 舞钢市| 辉南县| 高台县| 恩施市| 泾川县| 绥化市| 射洪县| 元朗区|