中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

深圳外文網(wǎng)站制作喬拓云智能建站官網(wǎng)

深圳外文網(wǎng)站制作,喬拓云智能建站官網(wǎng),重慶做網(wǎng)站及優(yōu)化報價,最近免費視頻中文2019完整版本篇將帶你實現(xiàn)一個簡易日歷應(yīng)用,顯示當(dāng)前月份的日期,并支持選擇特定日期的功能。用戶可以通過點擊日期高亮選中,還可以切換上下月份,體驗動態(tài)界面的交互效果。 關(guān)鍵詞 UI互動應(yīng)用簡易日歷動態(tài)界面狀態(tài)管理用戶交互 一、功能說明…

本篇將帶你實現(xiàn)一個簡易日歷應(yīng)用,顯示當(dāng)前月份的日期,并支持選擇特定日期的功能。用戶可以通過點擊日期高亮選中,還可以切換上下月份,體驗動態(tài)界面的交互效果。

在這里插入圖片描述


關(guān)鍵詞
  • UI互動應(yīng)用
  • 簡易日歷
  • 動態(tài)界面
  • 狀態(tài)管理
  • 用戶交互

一、功能說明

簡易日歷應(yīng)用提供了以下功能:

  1. 查看當(dāng)前月份的日期。
  2. 點擊某一天后高亮顯示選中的日期。
  3. 支持切換到上一個或下一個月份。

用戶通過動態(tài)界面交互,實時查看和選擇日期,提升應(yīng)用的互動體驗。


二、所需組件
  • @Entry@Component 裝飾器
  • ColumnRow 布局組件,用于頁面和網(wǎng)格布局
  • Button 組件,用于切換月份和選擇日期
  • Text 組件,用于顯示標(biāo)題和選中的日期
  • @State 修飾符,用于管理界面動態(tài)更新的狀態(tài)

三、項目結(jié)構(gòu)
  • 項目名稱SimpleCalendarApp
  • 自定義組件名稱SimpleCalendarPage
  • 代碼文件
    • SimpleCalendarPage.ets:實現(xiàn)核心邏輯。
    • Index.ets:作為應(yīng)用入口調(diào)用主頁面組件。

四、代碼實現(xiàn)
// 文件名:SimpleCalendarPage.ets@Component
export struct SimpleCalendarPage {@State currentDate: Date = new Date(); // 當(dāng)前日期@State selectedDate: Date | null = null; // 選中的日期build() {Column({ space: 20 }) {// 顯示當(dāng)前年份和月份Row({ space: 10 }) {Button('上一個月').onClick(() => this.changeMonth(-1));Text(`${this.currentDate.getFullYear()}${this.currentDate.getMonth() + 1}`).fontSize(24).fontWeight(FontWeight.Bold).alignSelf(ItemAlign.Center);Button('下一個月').onClick(() => this.changeMonth(1));}.justifyContent(FlexAlign.SpaceBetween);// 顯示星期標(biāo)題Row({ space: 5 }) {ForEach(['日', '一', '二', '三', '四', '五', '六'], (day: string) => {Text(day).fontSize(18).fontWeight(FontWeight.Bold).width('12%').textAlign(TextAlign.Center);});}// 顯示日期Column({ space: 5 }) {ForEach(this.getDatesInMonth(), (week: (Date | null)[]) => {Row({ space: 10 }) {ForEach(week, (date: Date | null) => {if (date) {Button(date.getDate().toString()).backgroundColor(this.selectedDate && this.isSameDay(this.selectedDate, date)? Color.Blue: Color.Gray).fontColor(Color.White).onClick(() => this.selectedDate = date).width('12%').height('50px');} else {Text(' ')// 空白占位.width('12%').height('50px');}});}.justifyContent(FlexAlign.SpaceBetween);});}// 顯示選中日期if (this.selectedDate) {Text(`選中的日期:${this.selectedDate.toLocaleDateString()}`).fontSize(20).alignSelf(ItemAlign.Center);}}.padding(20).width('100%').height('100%').alignItems(HorizontalAlign.Center);}// 獲取當(dāng)月的所有日期,按星期分組private getDatesInMonth(): (Date | null)[][] {const year = this.currentDate.getFullYear();const month = this.currentDate.getMonth();const firstDay = new Date(year, month, 1).getDay();const lastDay = new Date(year, month + 1, 0).getDate();const weeks: (Date | null)[][] = [];let currentWeek: (Date | null)[] = Array(firstDay).fill(null);for (let day = 1; day <= lastDay; day++) {currentWeek.push(new Date(year, month, day));if (currentWeek.length === 7) {weeks.push(currentWeek);currentWeek = [];}}if (currentWeek.length > 0) {while (currentWeek.length < 7) {currentWeek.push(null);}weeks.push(currentWeek);}return weeks;}// 判斷兩個日期是否為同一天private isSameDay(date1: Date, date2: Date): boolean {return (date1.getFullYear() === date2.getFullYear() &&date1.getMonth() === date2.getMonth() &&date1.getDate() === date2.getDate());}// 切換月份private changeMonth(offset: number) {const newDate = new Date(this.currentDate);newDate.setMonth(this.currentDate.getMonth() + offset);this.currentDate = newDate;this.selectedDate = null; // 切換月份時清除選中狀態(tài)}
}
// 文件名:Index.etsimport { SimpleCalendarPage } from './SimpleCalendarPage';@Entry
@Component
struct Index {build() {Column() {SimpleCalendarPage() // 調(diào)用簡易日歷頁面}.padding(20)}
}

效果示例:用戶可以通過按鈕切換月份,并點擊某一天高亮選中。界面實時更新,選中的日期顯示在屏幕下方。

在這里插入圖片描述


五、代碼解讀
  • 狀態(tài)管理@State currentDate@State selectedDate 用于保存當(dāng)前顯示的月份和選中的日期。
  • 動態(tài)生成日期按鈕:通過 getDatesInMonth 方法動態(tài)生成當(dāng)月的所有日期,使用 ForEach 渲染按鈕。
  • 日期高亮顯示:通過 isSameDay 方法判斷是否選中某一天,并更新按鈕的背景色。
  • 月份切換邏輯:通過 changeMonth 方法更新 currentDate 并重新計算日期。

六、優(yōu)化建議
  1. 添加工作日和周末標(biāo)記:用不同顏色標(biāo)記工作日和周末,增加視覺提示。
  2. 支持跳轉(zhuǎn)到指定日期:提供輸入框或日期選擇器,快速跳轉(zhuǎn)到特定月份。
  3. 擴展交互功能:例如顯示當(dāng)月的節(jié)假日信息或增加任務(wù)記錄功能。

七、相關(guān)知識點
  • 「Mac暢玩鴻蒙與硬件11」鴻蒙 UI 組件篇1 - Text 和 Button 組件詳解
  • 「Mac暢玩鴻蒙與硬件33」UI互動應(yīng)用篇10 - 數(shù)字猜謎游戲

小結(jié)

本篇通過動態(tài)生成日歷網(wǎng)格,展示了如何結(jié)合狀態(tài)管理和用戶交互實現(xiàn)簡易日歷功能。用戶可通過按鈕切換月份,并高亮選中日期,體驗鴻蒙系統(tǒng)的開發(fā)便捷性。


下一篇預(yù)告

在下一篇「UI互動應(yīng)用篇13 - 數(shù)字滾動抽獎器」中,我們將探索如何設(shè)計一個富有趣味的抽獎應(yīng)用。你將學(xué)習(xí)如何實現(xiàn)數(shù)字滾動效果,打造一個動態(tài)變化的抽獎界面,增加用戶交互的趣味性與吸引力。


上一篇: 「Mac暢玩鴻蒙與硬件34」UI互動應(yīng)用篇11 - 顏色選擇器
下一篇: 「Mac暢玩鴻蒙與硬件36」UI互動應(yīng)用篇13 - 數(shù)字滾動抽獎器

作者:SoraLuna
鏈接:https://www.nutpi.net/thread?topicId=312
來源:堅果派
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。


http://www.risenshineclean.com/news/34959.html

相關(guān)文章:

  • 福州企業(yè)網(wǎng)站推廣網(wǎng)絡(luò)營銷推廣方式
  • 馬鞍山制作網(wǎng)站網(wǎng)絡(luò)營銷方式有哪幾種
  • 學(xué)校網(wǎng)站制作2345網(wǎng)址導(dǎo)航大全
  • 做二手房的網(wǎng)站技巧網(wǎng)站做成app
  • 網(wǎng)站設(shè)計價格大概多少谷歌瀏覽器下載手機版
  • 做網(wǎng)站優(yōu)化給業(yè)務(wù)員提成百度資源提交
  • wordpress+admin主題武漢seo招聘信息
  • 揚中網(wǎng)站建設(shè) 優(yōu)幫云站長工具seo查詢5g5g
  • 珠海網(wǎng)站建設(shè)科速互聯(lián)百度知道網(wǎng)頁版進入
  • 徐匯做網(wǎng)站無錫百度推廣公司哪家好
  • 青島做外貿(mào)網(wǎng)站建設(shè)網(wǎng)絡(luò)營銷服務(wù)的特點
  • 微信網(wǎng)站模板免費下載seo免費入門教程
  • wordpress foxseo 關(guān)鍵詞優(yōu)化
  • 快速免費建網(wǎng)站常用的營銷策略
  • 邢臺做網(wǎng)站優(yōu)化百度排名優(yōu)化軟件
  • 淮北做網(wǎng)站的公司百度seo優(yōu)化服務(wù)項目
  • 滎陽網(wǎng)站建設(shè)公司網(wǎng)絡(luò)關(guān)鍵詞優(yōu)化軟件
  • 便宜做網(wǎng)站seo算法優(yōu)化
  • 佛山正規(guī)網(wǎng)站建設(shè)報價優(yōu)化大師app下載安裝
  • 口碑好網(wǎng)站建設(shè)公司seo關(guān)鍵詞優(yōu)化平臺
  • 不同網(wǎng)站對商家做o2o的政策阿里seo排名優(yōu)化軟件
  • 湖南教育平臺網(wǎng)站建設(shè)流量寶
  • 梧州專業(yè)網(wǎng)站推廣官方百度平臺
  • 做外貿(mào)的網(wǎng)站主要有哪些內(nèi)容網(wǎng)站分析培訓(xùn)班
  • 智慧團建登錄入口官網(wǎng)排名輕松seo 網(wǎng)站推廣
  • 家政公司網(wǎng)站建設(shè)方案軟文營銷ppt
  • 做網(wǎng)站可以用什么軟件目前病毒的最新情況
  • 中國做美國網(wǎng)站的翻譯兼職百度推廣投訴電話客服24小時
  • 幫非法集資公司做網(wǎng)站違法嗎南京網(wǎng)絡(luò)優(yōu)化公司有哪些
  • 國外網(wǎng)站推廣公司棗莊網(wǎng)絡(luò)推廣seo