| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> ui基础学习 -> 正文阅读 |
|
[移动开发]ui基础学习 |
TextView 的学习
?module 的 build.gradle 文件配置开启 ViewBinding
?viewBinding?{?????? ??enabled?=?true? ???}
在activity_main.xm中
添加代码
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is TextView"/>
可以看见空白顶格有This is Textview的一行字
如果要放在中间只要在andriod:text上打出
android:gravity="center"就可
表??字在垂直和?平?向都居中对?
文字颜色:
通过
android:textColor
属性可以指定?字的颜?,通过
android:textSize
属性可以指定?字的??。
EditText
是程序?于和?户进?交互的另?个重要控件,它允许?户在控
件?输?和编辑内容,并可以在程序中对这些内容进?处理。
在activity_main.xm中
添加代码
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
就可以打字了
android:hint="Type something here" 加一句,就可以提示用户打字
增加如下代码 可以将事先准备好的图片显现出来
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/img_1"
/>
AlertDialog
可以在当前界?弹出?个对话框,这个对话框是置顶于所有界
?元素之上的,能够屏蔽其他控件的交互能?
一般用来防??户误删重要内
容,在删除前弹出?个确认对话框。
修改MainActivity中的代码
override fun onClick(v: View?) {
when (v?.id) {
R.id.button -> {
AlertDialog.Builder(this).apply {
setTitle("This is Dialog")
setMessage("Something important.")
setCancelable(false)
setPositiveButton("OK") { dialog, which ->
}
setNegativeButton("Cancel") { dialog, which ->
}
show()
}
}
}
android:orientation
属性指
定了排列?向是
vertical
如:垂直排列
android:orientation="vertical" ? 水平排列
android:orientation="horizontal"
?
如果
LinearLayout
的排列?向是
horizontal
,内部的控件就
绝对不能将宽度指定为
match_parent
如果 LinearLayout的排列?向是
vertical
,内部的控件就不能将?度指定为
match_parent
。
否则,单独?个控件就会将整个
?平?向占满,其他的控件就没有可放置的位置了。
android:gravity
?于指定?字在控件中的对??式,?android:layout_gravity
?于指定控件在布局中的对??式。
当
LinearLayout
的排列?向是
horizontal
时,只有垂直?向上的对??式才会?效。因为此时?平?向上的?度是不固定的,每添加?个控件,?平?向上的?度都会改变,因??法指定该?向上的对??式。同样的道理,当LinearLayout的排列?向是vertical时,只有?平?向上的对??式才会?效。
android:layout_weight
。这个属性允许我们使??例的?式来指定控件的??,它在?机屏幕的适配性??可以起到?常重要的作?。
android:layout_weight
属性的值同时指定为
1
就会平分屏幕宽度
RelativeLayout
?称作相对布局
android:layout_above
属性可以让?个控件位于另?个控件的上?, 需要为这个属性指定相对控件id的引?。其他的属性也是相似的,
android:layout_below表?让?个控件位于另?个控件的下?,android:layout_toLeftOf表?让?个控件位于另?个控件的左侧,android:layout_toRightOf表?让?个控件位于另?个控件的右侧。注意,当?个控件去引?另?个控件的id
时,该控件?定要定义在引?控件的后?,不然会出现找不到id的情况。
引?标题栏布局
只需要添加
<include layout="@layout/title" />
如:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<include layout="@layout/title" />
</LinearLayout>
最常?和最难?的控件:ListView
ListView
允许?户通过?指上下滑动的?式将屏幕外的数据滚动到屏幕内,同时屏幕上原有的数据会滚动出屏幕。你其实每天都在使?这个控件,?如查看QQ
聊天记录,翻阅微博最新消息, 等等。
ListView
中的
标准写法
在
getView()
?法中,?先使?
LayoutInflater
来为这个?项加载我们 传?的布局。LayoutInflater
的
inflate()
?法接收
3
个参数,前两个 参数我们已经知道是什么意思了,第三个参数指定成false
,表?只让我们在?布局中声明的layout
属性?效,但不会为这个
View
添加?布局。因为?旦View
有了?布局之后,它就不能再添加到
ListView
中了。
getView()
?法中还有?个
convertView
参数,这
个参数?于将之前加载好的布局进?缓存,以便之后进?重?,我们可以
借助这个参数来进?性能优化。
更强?的滚动控件:
RecyclerView
如果我们想实现横向滚动的话,
ListView
是做不到的。
为此,
Android
提供了?个更强?的滚动控件
——RecyclerView
。它可以 说是?个增强版的ListView
,不仅可以轻松实现和
ListView
同样的效果,还优化了ListView
存在的各种不?之处。?前
Android
官?更加推荐使?RecyclerView,未来也会有更多的程序逐渐从
ListView
转向 RecyclerView
RecyclerView
的基本?法
每当修改了任何
gradle
?件,
Android Studio
都弹出?个
这个提?告诉我们,
gradle
?件?上次同步之后?发?了变化,需要再次同步才能使项?正常?作。这?只需要点击“Sync Now”
就可以了,然后gradle会开始进?同步,把我们新添加的
RecyclerView
库引?项?当中。
?
在RecyclerView尝试实现?下横向滚动的效果。 ?先要对fruit_item布局进?修改,因为?前这个布局??的元素是?平排列的,适?于纵向滚动的场景,?如果我们要实现横向滚动的话,应该把fruit_item
?的元素改成垂直排列才?较合理。
制作9-Patch图?
在
Android Studio
中,我们可以将任何
png
类型的图?制作成
9-Patch
图?。?先对着message_left.png
图?右击→Create 9-Patch fifile然后保持默认?件名就可以了,其实就相当于创建了?张以9.png为后缀的同名图?,点击“Save”完成保存。
按住
Shift
键拖动可以进?擦除我们绘制的小黑点
延迟初始化和密封类
延迟初始化使?的是
lateinit
关键字,它可以告诉
Kotlin
编译器,我会在晚些时候对这个变量进?初始化,这样就不?在?开始的时候将它赋值为null了。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
使?
lateinit
关键字也不是没有任何?险,如果我们在
adapter变量还没有初始化的情况下就直接使?它,那么程序就?定会崩溃,并且抛出?个UninitializedPropertyAccessException
异常。
所以,当你对?个全局变量使?了
lateinit
关键字时,请?定要确保它在被任何地?调?之前已经完成了初始化?作,否则Kotlin
将?法保证程序的安全性。
|
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 11:05:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |