12.16 Android常见标签 UI控件

1.android:supportsRtl="true”

指支持从右向左布局support right-to-left (RTL) layouts 是API17即Android4.2以后才有,之前是不支持该属性。当设置-开发人员选项-强制使用从右到左的布局方向就能看到效果。

2.xmlns

是xml namespace的缩写,C++中的namespace和Java中的packagename,是为了解决(如类名、接口名等)命名冲突。因为xml中标签不是预定义,所以会遇到命名冲突问题,而HTML中是预定义。

   2.1 XML 命名空间定义语法为xmlns:namespace-prefix="namespaceURI",一共分为三个部分:

     xmlns:声明命名空间的保留字,其实就是XML中元素的一个属性;

     namespace-prefix:命名空间的前缀,这个前缀与某个命名空间相关联;

     namespaceURI:命名空间的唯一标识符,一般就是一个URI引用

   2.2常见的xmlns有3种:

xmlns:android="http://schemas.android.com/apk/res/android" //命名空间andeoid用于Android 系统定义的一些属性

xmlns:tools="http://schemas.android.com/tools" //命名空间tools用于记录,定义为IDE提供相关信息的一些属性。当应用打包时会将这部分信息过滤掉,不增加应用包大小

xmlns:app="http://schemas.android.com/apk/res-auto”  //命名空间app用于定义自定义的一些属性

3.升级Android Studio,Refreshing卡住问题:

升级Android Studio,gradle会相应升级,当前项目会重建,本质是按照gradle.wrapper.properties里distributionUrl的地址去下载gradle文件

解决办法:把这个地址拷贝下来去下载好该gradle对应版本的zip文件,然后放到gradle文件目录下,再重启Android Studio此时安卓会检查该目录下有这个zip文件,会直接解压。

4.include

一个layout中引用另一个layout的布局,适合布局复杂,不同界面共用布局的app中,将多界面共用布局抽取出来用include标签引用,能降低layout复杂度,且布局重用(布局有改动时🈯️改一个地方即可)如在activiy_main.xml里

4.1. include和其它组件标签(RelativeLayout、LinearLayout、TextView等)一样,都可以使用layout属性来设置布局文件的宽高和位置,但需要注意的是:必须要复写android:layout_widthandroid:layout_height属性才能使用其它属性(比如:android:layout_grivity、android:layout_align…、android:id等),这样可以避免include引用layout中的子组件属性影响到include的布局效果。

4.2.建议将给include标签调用布局设置宽高、位置、ID等工作放在调用布局的根标签中,而include标签里只写一句 如在activity_main.xml文件里<include layout="@layout/content_main" />

这样可以避免给include标签设置属性不当造成的各种问题(之前遇到过给include标签设置android:id属性后,程序实例化子布局中组件失败的现象)

5.帧布局FrameLayout 表格布局TableLayout 网格布局GridLayout

6.常用控件

6.1. Android中视图的继承关系:

ProcessBar、TextView、ImageView、ViewGroup、SurfaceView继承自View;

EditText和Button继承自TextView;ImageButton继承自ImageView; FrameLayout、RelativeLayout、LinearLayout、AdapterView继承自ViewGroup;

ComposeButton继承自Button; AbsListView继承自AdapterView

RadioButton、Switch、CheckBox继承自ComposeButton; ListView、GridView继承自AbsListView

6.2. View的通有属性:

id(控件、对象标识)@+id/创建、@id/引用、@android:id/引用系统控件;

layout_width(宽:x轴)layout_height(高:y轴)match_parent匹配父元素、wrap_content匹配内容、指定数值多少dp

elevation(海拔:z轴,Android5质感设计中引入)

gravity(内容、子元素在视图中停靠位置)left、right、top、bottom、center_horizontal、center_vertical……right|bottom、bottom!center

layout_gravity视图在布局中的停靠位置

Padding视图的内边距 单位sp

layout_margin外边距 单位sp

visibility可见性visible、invisible、gone

6.3. 按用途分类:

文本控件TextView EditText

按钮控件 Button ImageButton 单选与复选按钮CheckBox RadioButton

状态开关 ToggleButton

图片控件 ImageView

时钟控件AnalogClock DigitalClock

日期与时间选择控件DatePicker TimePicker

6.3.1. TextView

text文本内容:字符串 、@string/字符串资源

textSize字号 单位sp: 默认14sp

textColor:  @android:color/系统颜色、@color/自定义颜色、#argb或#rgb

autoLink文本链接方式: email、phone、web、map、all

linksClickable链接是否可点击

minLine最小行数

maxLine最大行数

singleLine是否单行

ellipsize省略文字start、middle、end、marquee跑马灯

hint 当显示内容为空时,可设置占位文字如“请输入数字!”

6.3.2. EditText

text文本内容

maxLength最大输入长度

hint 提示信息:字符串或字符串资源

selectAllOnFocus是否选中文本

inputType软键盘类型 phone 、textEmailAddress、number、texturl、textPassword、numberPassword、textMultiLine

digits允许输入的字符 如“1234567890.+-*/%\n()”

imeOptions输入法选项

drawableLeft/Right/Top/Bottom设置图标:上下左右

drawablePadding与图标的边距

editable是否可编辑

android:numeric="" 数字框。Integer正整数, signed整数(可带负号), decimal浮点数

password="" True为密码框、phoneNumber=""True为电话框

6.3.2.  Button与ImageButton

findViewById 根据id得到layout中声明的Button的引用,setOnClickListerner添加监听,在监听器中用v.eauals(View)判断哪个按钮被按下进行分别处理

ImageButton 与Button之间的最大区别在于ImageButton中没有text属性 可以通过android:src或setImageResource(int)来设置图片

6.3.3.  ImageView

layout_width(宽:x轴)layout_height(高:y轴)

src图片资源@drawable项目资源  @android:drawable/系统资源

scaleType伸缩类型:matrix左上角起始的矩形区域,会裁剪;center按原尺寸,居中显示,会裁剪;centerCrop伸缩宽高匹配控件,居中显示,会裁剪;centerInside原图或缩小匹配控件居中显示,不裁剪;fitXY匹配控件宽高,会变形,不裁剪,填满会失真;fitStart伸缩宽高匹配控件,在顶部或左侧显示,不裁剪;fitEnd伸缩宽高匹配控件,在底部或右侧显示,不裁剪;fitCenter伸缩宽高匹配控件,在中间显示,不裁剪,不一定填满不失真;

contentDescription内容描述

background控件背景色

maxHeight最大高度  maxWidth最大宽度

adjustViewBounds是否需要ImageView调整自己的边界,保证图片的显示比例

常见方法:setAlpha(Int)透明度、setImageBitmap显示内容为Bitmap对象、setImageDrawable内容Drawable类型、setImageUrl、setSelected选择状态、setImageResource(Int)指定id资源

6.3.4. RadioButton和CheckBox

CheckBox复选按钮  isChecked()检查是否被选中

7.Shift+Ctrl+F全局搜索突然不起作用

提示Noting Found, Check search scope or try search options  退出全局搜索焦点放在这个面板上按Esc

现状:没用Filter 没勾选File mask 切换InProject Module Directory Scope都一样

可能导致原因:按提示更新了个插件导致的?

解决:Android Studio->File->Invalidate caches/restart在弹窗中选invalidate and restart ” 即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值