日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

《移动项目实践》实验报告——Android组合控件

發(fā)布時(shí)間:2024/10/5 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《移动项目实践》实验报告——Android组合控件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

實(shí)驗(yàn)?zāi)康?/h1>

1、熟悉App開(kāi)發(fā)常用的一些組合控件,主要包括底部標(biāo)簽欄的實(shí)現(xiàn)和用法、頂部導(dǎo)航欄的用法、橫幅輪播條的實(shí)現(xiàn)和用法、循環(huán)視圖3種布局的用法、材質(zhì)設(shè)計(jì)庫(kù)3種布局的用法等;

實(shí)驗(yàn)內(nèi)容

仿淘寶主頁(yè)

上圖是淘寶App的主頁(yè)截圖,這也是電商App的通用模板。類似的電商App還有:(1)京東;(2)唯品會(huì);(3)蘇寧易購(gòu);(4)當(dāng)當(dāng);(5)美團(tuán)。本次實(shí)驗(yàn)也可以仿這幾個(gè)電商平臺(tái)中的某個(gè)實(shí)現(xiàn)。

實(shí)驗(yàn)過(guò)程(實(shí)驗(yàn)的設(shè)計(jì)思路、關(guān)鍵源代碼等)

源代碼:https://gitee.com/shentuzhigang/mini-project/tree/master/android-taobao

package io.shentuzhigang.demo.taobaoimport android.app.ActivityGroup import android.content.Intent import android.os.Bundle import android.view.View import android.view.ViewGroup import android.widget.LinearLayout import io.shentuzhigang.demo.taobao.R import io.shentuzhigang.demo.taobao.DepartmentCartActivity import io.shentuzhigang.demo.taobao.DepartmentClassActivity import io.shentuzhigang.demo.taobao.DepartmentHomeActivityclass DepartmentStoreActivity : ActivityGroup(), View.OnClickListener {private val mBundle = Bundle() // 聲明一個(gè)包裹對(duì)象private var ll_container: LinearLayout? = nullprivate var ll_first: LinearLayout? = nullprivate var ll_second: LinearLayout? = nullprivate var ll_third: LinearLayout? = nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_department_store)// 從布局文件中獲取名叫l(wèi)l_container的線性布局,用于存放內(nèi)容視圖ll_container = findViewById(R.id.ll_container)ll_first = findViewById(R.id.ll_first) // 獲取第一個(gè)標(biāo)簽的線性布局ll_second = findViewById(R.id.ll_second) // 獲取第二個(gè)標(biāo)簽的線性布局ll_third = findViewById(R.id.ll_third) // 獲取第三個(gè)標(biāo)簽的線性布局ll_first?.setOnClickListener(this) // 給第一個(gè)標(biāo)簽注冊(cè)點(diǎn)擊監(jiān)聽(tīng)器ll_second?.setOnClickListener(this) // 給第二個(gè)標(biāo)簽注冊(cè)點(diǎn)擊監(jiān)聽(tīng)器ll_third?.setOnClickListener(this) // 給第三個(gè)標(biāo)簽注冊(cè)點(diǎn)擊監(jiān)聽(tīng)器mBundle.putString("tag", TAG) // 往包裹中存入名叫tag的標(biāo)記串changeContainerView(ll_first) // 默認(rèn)顯示第一個(gè)標(biāo)簽的內(nèi)容視圖}override fun onClick(v: View) {if (v.id == R.id.ll_first || v.id == R.id.ll_second || v.id == R.id.ll_third) {changeContainerView(v) // 點(diǎn)擊了哪個(gè)標(biāo)簽,就切換到該標(biāo)簽對(duì)應(yīng)的內(nèi)容視圖}}// 內(nèi)容視圖改為展示指定的視圖private fun changeContainerView(v: View?) {ll_first!!.isSelected = false // 取消選中第一個(gè)標(biāo)簽ll_second!!.isSelected = false // 取消選中第二個(gè)標(biāo)簽ll_third!!.isSelected = false // 取消選中第三個(gè)標(biāo)簽v!!.isSelected = true // 選中指定標(biāo)簽if (v === ll_first) {// 切換到第一個(gè)活動(dòng)頁(yè)面DepartmentHomeActivitytoActivity("first", DepartmentHomeActivity::class.java)} else if (v === ll_second) {// 切換到第二個(gè)活動(dòng)頁(yè)面DepartmentClassActivitytoActivity("second", DepartmentClassActivity::class.java)} else if (v === ll_third) {// 切換到第三個(gè)活動(dòng)頁(yè)面DepartmentCartActivitytoActivity("third", DepartmentCartActivity::class.java)}}// 把內(nèi)容視圖切換到對(duì)應(yīng)的Activity活動(dòng)頁(yè)面private fun toActivity(label: String, cls: Class<*>) {// 創(chuàng)建一個(gè)意圖,并存入指定包裹val intent = Intent(this, cls).putExtras(mBundle)// 移除內(nèi)容框架下面的所有下級(jí)視圖ll_container!!.removeAllViews()// 啟動(dòng)意圖指向的活動(dòng),并獲取該活動(dòng)頁(yè)面的頂層視圖val v = localActivityManager.startActivity(label, intent).decorView// 設(shè)置內(nèi)容視圖的布局參數(shù)v.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)// 把活動(dòng)頁(yè)面的頂層視圖(即內(nèi)容視圖)添加到內(nèi)容框架上ll_container!!.addView(v)}companion object {private const val TAG = "DepartmentStoreActivity"} }

實(shí)驗(yàn)結(jié)果(實(shí)驗(yàn)最終作品截圖說(shuō)明)


實(shí)驗(yàn)心得

1、熟悉App開(kāi)發(fā)常用的一些組合控件,主要包括底部標(biāo)簽欄的實(shí)現(xiàn)和用法、頂部導(dǎo)航欄的用法、橫幅輪播條的實(shí)現(xiàn)和用法、循環(huán)視圖3種布局的用法、材質(zhì)設(shè)計(jì)庫(kù)3種布局的用法等;

參考文章

總結(jié)

以上是生活随笔為你收集整理的《移动项目实践》实验报告——Android组合控件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。