Activity从入门到放弃
16lz
2021-01-23
- 基本控件
①Button:
注意到显示的text均为大写,如果要保留原始文字内容,需在XML上添加:
android:textAllCaps = "false"
/点击事件需要在相应Activity中注册监听器
button.setOnClickListener{ ...}
②TextView: 显示文本信息
③EditText:文本输入框
android:hint = "text" //提示输入内容android:maxLines = "n" //规定行数
④ImageView / ProgressBar
图片放在drawable目录下
通过style属性可以设置进度条的形式
⑤AlertDialog
弹出对话框,置顶于所有界面元素之上
setTitle()
setMessage()
setCancelable(false) :Back键不能返回
setPositiveButton/setNegativeButton(“text”){dialog, which->}
确定按钮和取消按钮
- 布局
①LinearLayout:线性布局(很常用)
②RelativeLayout:相对布局,控件相对于父布局进行定位的。注意多了一些属性。eg:相对于父布局或其它控件的上下左右。
③FrameLayout:帧布局,最简单,与Fragment相结合 - RecyclerView(重点介绍)
横向布局,网格布局,瀑布流布局
新增控件需要在build.gradle中添加依赖
同时在activity_main.xml中需要把完整的包路径写出来
配置适配器:
class FruitAdapter (val fruitList: List<Fruit>) :RecyclerView.Adapter<FruitAdapter.ViewHolder>(){ inner class ViewHolder(view: View): RecyclerView.ViewHolder(view){ val fruitImage :ImageView = view.findViewById(R.id.fruitImage) val fruitName :TextView = view.findViewById(R.id.fruitName) } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val view= LayoutInflater.from(parent.context) .inflate(R.layout.fruit_item, parent, false) val viewHolder = ViewHolder(view) //最外层布局 viewHolder.itemView.setOnClickListener { val position = viewHolder.adapterPosition val fruit = fruitList[position] Toast.makeText(parent.context,"You clicked view ${fruit.name}",Toast.LENGTH_SHORT).show() } //ImageView viewHolder.fruitImage.setOnClickListener { val position = viewHolder.adapterPosition val fruit = fruitList[position] Toast.makeText(parent.context,"you clicked image ${fruit.name}", Toast.LENGTH_SHORT).show() } return viewHolder } override fun onBindViewHolder(holder: ViewHolder, position: Int) { val fruit = fruitList[position] holder.fruitImage.setImageResource(fruit.ImageId) holder.fruitName.text = fruit.name } override fun getItemCount() = fruitList.size}
继承自RecyclerView.Adapter必须重写
onCreateViewHolder():创建ViewHolder实例,将布局加载进来,传入构造函数中
onBindViewHolder():对RecyclerView子项的数据进行赋值,当子项滚动到屏幕内时就会执行
getItemCount():返回数据源的长度即可
❗相应Activity中需要layoutManager来加载布局
val layoutManager = StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL) recyclerView.layoutManager = layoutManager val adapter = FruitAdapter(fruitList) recyclerView.adapter = adapter
Fragment了解了一下平板手机兼容的新闻应用,就不做归纳了(心累~~)
下次就要开始学习第二个组件:
BroadcastReceiver!!!
更多相关文章
- listview 左滑弹出删除按钮,需要折腾一下
- Android之ListView控件
- Android UI布局
- 系出名门Android(7) - 控件(View)之ZoomControls, Include...
- Android在Activity中获得控件宽高和截屏操作
- Android常用控件之ExpandableList的使用
- android 常见布局及控件的属性详解
- Android布局动画之animateLayoutChanges与LayoutTransition
- Android布局详解