1. 基本控件
    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->}
确定按钮和取消按钮

  1. 布局
    LinearLayout:线性布局(很常用)
    RelativeLayout:相对布局,控件相对于父布局进行定位的。注意多了一些属性。eg:相对于父布局或其它控件的上下左右。
    FrameLayout:帧布局,最简单,与Fragment相结合
  2. 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!!!

更多相关文章

  1. listview 左滑弹出删除按钮,需要折腾一下
  2. Android之ListView控件
  3. Android UI布局
  4. 系出名门Android(7) - 控件(View)之ZoomControls, Include...
  5. Android在Activity中获得控件宽高和截屏操作
  6. Android常用控件之ExpandableList的使用
  7. android 常见布局及控件的属性详解
  8. Android布局动画之animateLayoutChanges与LayoutTransition
  9. Android布局详解

随机推荐

  1. Android(安卓)Kotlin ARouter组件化构建
  2. Android-系统启动过程
  3. Android内存优化(二)--布局优化
  4. Android异步任务简单使用
  5. Android(安卓)Shader 颜色、图像渲染 pai
  6. android qq 消息页面 editview 获得焦点
  7. Android(安卓)L 新特性
  8. android N编译
  9. Android(安卓)资源文件屏幕适配
  10. Android实现调用震动的方法