第三百八十一回

文章目錄

  • 1. 概念介紹
  • 2. 修改方法 015buttonStyle.png
    • 2.1 修改形狀
    • 2.2 修改顏色
    • 2.3 修改位置
  • 3. 示例代碼
  • 4. 內容總結

我們在上一章回中介紹了"如何創建以圖片為背景的頁面"相關的內容,本章回中將介紹如何修改按鈕的形狀.閑話休提,讓我們一起Talk Flutter吧。

在這里插入圖片描述

1. 概念介紹

我們在前面章回中介紹過按鈕的基本用法,如果有看官忘記了可以點擊這里查看。本章回中主要介紹如何修改按鈕的形狀以及其它的屬性,比如文字顏色等。按鈕默認的形
狀是一個圓角矩形,當然這個默認形狀使用的是默認的theme,如果換成新的Material3默認主題,那么按鈕的默認形狀就是橢圓,而且帶有淺紫色背景。下面是一個示
例圖,圖中上面的按鈕是Material3默認主題下的Button,下面的按鈕是我們修改后的按鈕,大家對比一下就會發現它們的形狀,顏色,文字位置都不一樣。
在實際項目中這種默認的形狀和顏色通常不符合設計需求,那么如何修改呢?看官莫急,本章回中將詳細介紹如何修改按鈕的形狀,顏色,內容的位置以及邊距。

2. 修改方法 015buttonStyle.png

我們修改的內容包含形狀,顏色,內容的位置,這些內容都屬于按鈕的外觀風格,通過按鈕的style屬性可以修改這些風格。修改style時可以創建一個新的style,不
過這個操作比較麻煩,我們推薦的做法是使用styleFrom()方法,該方法提供了相關的屬性來修改按鈕的風格,而且它只修改屬性中的內容,其它的內容仍然使用按鈕
原來的風格。接下來我們將分別介紹修改這些風格的方法。

2.1 修改形狀

我們通過shape屬性來修改按鈕的形狀,通常使用RoundedRectangleBorder()對象給它賦值,這樣可以調整圓角的大小,也可以把按鈕的形狀修改成圓形。我們將
在后面的小節中通過示例代碼來演示具體的修改方法。

2.2 修改顏色

我們通過backgroundColor和foregroundColor屬性可以修改按鈕的背景顏色和按鈕中文字的顏色。給這兩個屬性賦值時,可以使用系統提供的顏色值,也可以使用
自定義的顏色值。我們將在后面的小節中通過示例代碼來演示具體的修改方法。

2.3 修改位置

我們通過alignment和padding屬性可以修改按鈕上顯示文字的位置,這里需要注意一下,修改位置時最好同時修改這兩個屬性,否則效果不明顯,因為按鈕默認的風格
會在按鈕的文字周圍添加邊距,修改位置時需要去掉邊距才效果,不然文字無法貼到按鈕邊框上。我們將在后面的小節中通過示例代碼來演示具體的修改方法。

3. 示例代碼

///正常的button和修改style后的button,可以對比
ElevatedButton(onPressed: (){},child: const Text("ElevatedButton"),
),
ElevatedButton(onPressed: (){},style: ElevatedButton.styleFrom(///調整圓角度數shape:RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)),///調整文字位置,注意有邊距,去掉邊距后效果更加明顯alignment: Alignment.centerRight,///調整button內文字的間隔padding:const EdgeInsets.only(left:24,top:8,right: 0,bottom:8),///調整button的顏色backgroundColor: Colors.black87,foregroundColor: Colors.white),child: const Text("ElevatedButton"),
),

我們通過上面的代碼中演示了修改按鈕風格的方法,編譯并且運行該程序可以得到兩個按鈕的效果圖,具體的圖形可以參考文章開始的圖片。

4. 內容總結

我們在本章回中說的按鈕特指ElevatedButton。其它類型的按鈕只是與ElevatedButton 的風格不同,它們的修改方法完全相同。我們在這里就不介紹了,大家可以
自己動手去練習,就當作是我們留給大家的課外作業。最后,我們對本章回的內容做一個全面的總結:

  • 按鈕形狀等風格與主題有關,不同主題的按鈕風格不一樣;
  • 按鈕的風格通過它的style屬性來控制,修改該屬性值可以修改按鈕的風格;
  • 修改屬性值時推薦使用styleFrom()方法,該方法只指定指定屬性的內容,其它的內容保持不變;
    看官們,與"如何修改按鈕的形狀"相關的內容就介紹到這里,歡迎大家在評論區交流與討論!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/719696.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719696.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719696.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2024年華為OD機試真題-文件緩存系統-Python-OD統一考試(C卷)

題目描述: 請設計一個文件緩存系統,該文件緩存系統可以指定緩存的最大值(單位為字節)。 文件緩存系統有兩種操作:存儲文件(put)和讀取文件(get) 操作命令為put fileName fileSize或者get fileName 存儲文件是把文件放入文件緩存系統中;讀取文件是從文件緩存系統中訪問已存…

06. Nginx進階-Nginx代理服務

proxy代理功能 正向代理 什么是正向代理? 正向代理(forward proxy),一個位于客戶端和原始服務器之間的服務器。 工作原理 為了從原始服務器獲取內容,客戶端向代理發送一個請求并指定目標(即原始服務器…

為不同文章形式選擇不同的WordPress文章模板

在寫文章的時候選擇不同的文章形式,然后打開文章的時候會調用不同文章形式的模板。比如,文章形式為video ,就調用single-video.php模板,其它文章形式類似,可以添加多個文章樣式。 //為不同文章形式的內容添加不同的si…

chatgpt-next-web搭建教程,超低成本部署屬于自己的ChatGPT

隨著AI的應用變廣,各類AI程序已逐漸普及,尤其是在一些日常辦公、學習等與撰寫/翻譯文稿密切相關的場景,大家都希望找到一個適合自己的穩定可靠的ChatGPT軟件來使用。 ChatGPT-Next-Web就是一個很好的選擇。它是一個Github上超人氣的免費開源…

Spring AOP在業務中常見的使用方式

目錄 1、動態代理 1.1、jdk動態代理 1.2、cglib動態代理 1.3、動態代理的好處 2、什么是AOP 2.1、AOP常用術語 2.2、切面的構成 3、使用aspectJ框架實現AOP 3.1、aspectJ簡介 聲明實現類ServiceImpl 聲明切面 3.3、AfterReturning后置通知 切面類代碼 3.4、Aroun…

2核4G云服務器租用價格_2核4G云主機優惠價格_2024年報價

租用2核4G服務器費用價格,2核4G云服務器多少錢一年?1個月費用多少?阿里云2核4G服務器30元3個月、輕量應用服務器2核4G4M帶寬165元一年、企業用戶2核4G5M帶寬199元一年;騰訊云輕量2核4G服務器5M帶寬165元一年、252元15個月、540元三…

Spring IOC在業務中常見的使用方式

目錄 1、什么是IOC 2、java實現創建對象的方式有哪些 3、基于配置文件的di實現 3.1、什么是di 3.2、入門案例 3.3、環境搭建 接口和實現類 ioc配置文件 測試程序 3.4、案例總結 3.5、簡單類型屬性的賦值(set注入) set注入要求 JavaBean sp…

前端項??件很?,?且??訪問速度慢,如何在前端側提?性能?

1. 網絡優化 減少HTTP請求的數量,可以通過合并CSS和JavaScript文件來實現。使用CDN(內容分發網絡)來加速靜態資源的加載速度。對圖片進行壓縮,選擇正確的格式,并實現懶加載技術,以減少頁面初次加載時的數據…

代碼隨想錄day12(2)字符串:重復的子字符串(leetcode459)

題目要求:給定一個非空的字符串,判斷它是否可以由它的一個子串重復多次構成。給定的字符串只含有小寫英文字母,并且長度不超過10000。 思路: 一、首先對于暴力解法,可以枚舉所有的字串進行判斷。但是枚舉時實際上只需…

rt thread stdio如何同時生成bin和hex

一、rt thread stdio默認生成bin文件: rt thread stdio 軟件編譯時,默認生成bin文件; 二、rt thread stdio如何同時生成bin和hex 右鍵單擊-->項目-->屬性-->C/C構建-->設置-->構建步驟-->(構建后步驟)命令: …

視頻如何無水印保存?這三種下載方法趕緊收藏

在互聯網時代,視頻已成為我們獲取信息、娛樂休閑的重要途徑。然而,有時我們想要保存或分享某些視頻時,卻發現下載起來卻帶有水印。為了解決這個問題,今天給大家帶來幾個無水印下載的方法。 方法一:水印云 水印云是一…

Python使用模塊和庫編程

歸納編程學習的感悟, 記錄奮斗路上的點滴, 希望能幫到一樣刻苦的你! 如有不足歡迎指正! 共同學習交流! 🌎歡迎各位→點贊 👍 收藏? 留言?📝 路在腳下,勇往直前&#x…

Spring Boot2.2.4版本啟動項目時,訪問登錄接口顯示頁面不存在

問題觸發場景:IDEA 2023.3.4 SpringBoot 2.2.4 上面4張圖片分別是項目結構、Spring Boot啟動配置、SpringMVC配置和頁面展示在項目中存放的位置,表面上看上去沒有太大問題,項目應該會達到預期結果,但是bug總是在不經意間出現&…

MySQL數據庫運維第一篇(日志與主從復制)

文章目錄 一、錯誤日志二、二進制日志三、查詢日志四、慢查詢日志(記錄超時的sql語句)五、主從復制概括六、主從復制原理七、搭建主從復制八、主從復制的測試 在這篇深入的技術文章中,作者將以明晰透徹的方式詳細介紹MySQL數據庫中關鍵的日志…

XGB-16:自定義目標和評估指標

概述 XGBoost被設計為一個可擴展的庫。通過提供自定義的訓練目標函數和相應的性能監控指標,可以擴展它。本文介紹了如何為XGBoost實現自定義的逐元評估指標和目標。 注意: 排序不能自定義 在接下來的兩個部分中,將逐步介紹如何實現平方對數…

【EAI 027】Learning Interactive Real-World Simulators

Paper Card 論文標題:Learning Interactive Real-World Simulators 論文作者:Mengjiao Yang, Yilun Du, Kamyar Ghasemipour, Jonathan Tompson, Leslie Kaelbling, Dale Schuurmans, Pieter Abbeel 作者單位:UC Berkeley, Google DeepMind, …

【 Docker 容器詳細介紹和說明】

Docker 容器詳細介紹和說明 Docker 容器詳細介紹和說明Docker 安裝步驟(以Ubuntu為例):使用Docker創建并運行容器:VSCode遠程連接Docker容器:步驟1:配置Docker環境步驟2:配置PyCharm步驟3&#…

日本發動全面侵華戰爭他們在怕什么?為何不敢動陜西,

日本全面侵華戰爭之謎:恐懼與野心的交織 在二十世紀三十年代,日本帝國主義以令人發指的暴行和殘忍手段,對中國發動了全面侵華戰爭。然而,在這場戰爭中,有一個引人關注的現象:日本侵略者在進攻過程中&#…

python和nodejs一鍵安裝當前項目所有依賴

python和nodejs一鍵安裝當前項目所有依賴。群里有人問怎么快速安裝網上下載的源碼里面的依賴。所以在這里分享一下。更多問題可以自己加群917400262問我。 目錄導航 1.0 python一鍵安裝當前項目所有依賴2.0 nodejs一鍵安裝當前項目所有依賴 1.0 python一鍵安裝當前項目所有依賴…

snakemake: 基礎知識

為了有效地學習和使用 Snakemake,你需要具備一定的基礎知識。這些基礎知識將幫助你更好地理解 Snakemake 的工作原理和如何在你的項目中應用它。以下是學習 Snakemake 所需的一些基礎知識: 1. Python 編程 Snakemake 是用 Python 編寫的,并…