在跟着黑马程序员的kotlin开发教程的项目(黑马外卖)学习中,突然想着一边跟着他的代码抄写运行,一边通过学习到的方法,从零开始创建一个属于自己的程序,并且在学习的同时,在这个平台记录下自己的学习日常。
Day1第一步:创建工程(开发环境采用的Android Studio3.6)
打开开发环境,如下图选择Start a new Android Studio project
//建立颜色选择器,即点击后才显示颜色,默认状态为黑色,具体实现看下面的补充部分
//创建了一个图标选择器,用来切换图标的点击效果,集体实现看补充部分
/>
/>
mian_bottom_textcolor代码:
main_they_selector代码(以此为例,其他两个与之相同)
MainActivity代码及其注释
package com.zyx.lovedairy
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
initBottomBar()
}
private fun initBottomBar() {//在底部选项卡中找出对应的板块
for (i in 0 until main_bottom_bar.childCount){
main_bottom_bar.getChildAt(i).setOnClickListener {
view -> changeIndex(i)
}
}
}
private fun changeIndex(Index: Int) {//找出对应的板块后,给板块设置对应的状态
for (i in 0 until main_bottom_bar.childCount){
val child = main_bottom_bar.getChildAt(i)
if(i==Index)
{
setEnable(child,false)//点击传入状态禁用(图标亮起)
}
else
setEnable(child,true)//没点击使用状态启用(图标灰暗)
}
}
private fun setEnable(child: View, isEnable: Boolean) {//设置状态函数
child.isEnabled=isEnable//首先设置在底部选项卡中选出的板块的状态
if (child is ViewGroup){
for (i in 0 until child.childCount){
child.getChildAt(i).isEnabled=isEnable//设置该板块中ImageView的状态
}
}
}
}
补充部分’
1.mian_bottom_textcolor详解:
由上面的代码片可以看出,mian_bottom_textcolor里面用state_enabled方法指令了两种状态,并且给每个状态用android:color方法指定了颜色(#后面的六个数字就是对应的颜色,使用技巧:你先随便用六个数字,之后在改语句前面会出现,一个小色块,点击小色块进去,就可以在色板选择自己想要的颜色嗷),建立好了两种状态,接下来的点击操作,就用MainActivity里面的方法完成
2.main_they_selector详解
点击除了要更换上面所说的文字颜色,同时也需要更改图标的状态,这就是main_they_selector建立的原因,与上面的颜色思路相同,不过对于图标而言,不是为了该颜色,而是更改图标,这就需要你事先准备好你想要的图标文件,并且命名为你方便检查的名字,如图:
接下来,复制这些图标放到工程目录的drawable下,如图:
利用上诉代码块中写到的方法给对应状态指定你想要的对应图标就完成了,而状态切换的实现,就由上诉代码块里的MainActivity完成
3.MainActivity中所用到的kotlin扩展包
整个MainActivity中的方法的核心就是找出我点击的是哪个图标并且进行状态切换
假如不引用扩展包,就需要利用findviewByid方法去找到对应孩子
为了简便使用,引用扩展包Anko
扩展包资源站:https://github.com/Kotlin/anko,进入后,在下面找到添加依赖的方法,如下图:
复制粘贴到本地biuldgradle的dependencies目录下,重构,完成导入
“山水一程,闲云二两”
作者:JK'