| |
|
开发:
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图书馆 购物 三丰科技 阅读网 日历 万年历 2025年3日历 | -2025/3/6 11:23:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |