导读:详细介绍一下,3.1.1文本组件是我们最常用的组件之一。它用于在UI界面上显示字符串。作为基础组件,有很多扩展,比如Button组件、TextFiled组件、TickTimer组件,都是Text组件的扩
详细介绍一下,3.1.1
文本组件是我们最常用的组件之一。它用于在UI界面上显示字符串。作为基础组件,有很多扩展,比如Button组件、TextFiled组件、TickTimer组件,都是Text组件的扩展(也叫Text的子类)。
Text (Text Component)是Component类的子类之一,所以它可以使用Component类所有暴露的属性和方法(下一章将介绍这个类详细)。文本类本身也提供了一些特殊的属性、方法、内部类和接口。
1.从源代码开始
看官方的Java API文档显示结构不是很清晰,所以我们看DevEco里的源代码。
/* * *继承组件class */Public class text extensions Component { }这里我们讲一下如何查看类的继承关系。由于DevEco是一个基于开源的社区版本,所以它没有图表功能。我们可以用第二种方法来导航->;键入Hierarchy(或F4)查看图表。
我们可以点击DevEco界面左侧的tab结构来查看类中的详细结构。我们可以看到,Text本身提供了很多属性和方法,它也继承了父类的很多属性和方法。
/* * * Default constructor *用于创建具有默认属性和样式的文本实例* @ param Context */public Text(Context Context){ }/* *提供用于在XML解析后创建具有指定属性集和默认样式的文本实例的构造函数* @ param Context * @ param attrSet */public Text(Context Context, SetAttrattrset) {}/* *提供XML解析后使用指定属性集和指定样式创建文本实例的构造函数* @ param context * @ param ttrset * @ param style name */public text(context context,SetAttrattrset,string style name) {}当我们想在代码中的布局中添加组件时,需要先创建一个component对象。 使用默认构造函数创建文本对象。后面两个构造函数在这里就不做过多解释了。定制组件时会用到这两个构造函数。稍后将在详细的定制组件一节中介绍它们。期待吧。
//创建一个文本对象Text Text = new Text(this);我们可以看到text类在结构上有很多属性,比如设置文本内容的Text属性,设置文本内容颜色的textColor属性,设置文本内容字体大小的textSize属性,设置文本内容字体的font属性。还有一些从父类继承的属性,如用于设置文本宽度的width属性和用于设置文本高度的height属性。
//1.创建一个文本对象Text Text = new Text(this);//2.设置文本内容宽度和高度text . set width(component container . layout config . match _ parent);text . set height(component container。layout config . MATCH _ PARENT);//3.设置显示内容text . settext(& # 34;我在代码中创建了文本。");//4.设置文本大小text.settextsize (50,text . textsize type . FP);//5.设置文本颜色text.setTextColor(Color。蓝色);//6.向layout.addComponent(text)添加一个组件;我们可以启动我们的模拟器,看看我们设置的文本内容是否显示在界面中。
当然,组件不仅仅是用来展示的,我们还可以在组件中加入监控事件,达到交互的效果。比如我们点击界面中的文本内容,使其显示为其他内容。
现在我们正在使用代码来构建UI界面。当然官方也为我们提供了用XML声明布局,添加组件,在代码中设置接口入口只需要指定其在内存中的地址。如果我们要监控一个组件,我们需要指定它在内存中的地址,然后创建一个对象来完成监控操作。
在资源-->中:在基础目录下创建一个布局目录(目录中的文件为布局资源),然后创建一个布局资源文件(后缀。xml ),然后用XML声明布局和组件。
<!--xml文件--><?xml version="1.0" encoding="utf-8"?><DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:height="match_parent" ohos:width="match_parent" ohos:orientation="vertical"> <Text ohos:id="$+id:text_helloworld" ohos:height="match_parent" ohos:width="match_parent" ohos:layout_alignment="horizontal_center" ohos:text="我是在XML中声明的Text。" ohos:text_size="50" /></DirectionalLayout>
//在AbilitySlice的onStart方法中设置界面入口,这里指定页面在内存中的地址super.setUIContent(ResourceTable.Layout_ability_text_xml);
& lt!- xml文件-& gt;& lt?xml版本= & # 34;1.0"编码= & # 34;utf-8 & # 34;?& gt& ltdirectional layout xmlns:ohos = & # 34;http://schemas.huawei.com/res/ohos"·奥斯:身高= & # 34;match _ parent & # 34ohos:width = & # 34;match _ parent & # 34ohos:orientation = & # 34;垂直& # 34;& gt& lttext ohos:id = & # 34;$+id:text _ hello world & # 34;ohos:height = & # 34;match _ parent & # 34ohos:width = & # 34;match _ parent & # 34ohos:layout _ alignment = & # 34;水平_居中& # 34;ohos:text = & # 34;我用XML声明了文本。"ohos:text _ size = & # 34;50"/& gt;& lt/directional layout & gt;//在AbilitySlice的onStart方法中设置接口入口,其中指定页面在内存中的地址super . setuicontent(resource table . layout _ capability _ text _ XML);
2.通用属性和方法
至此,我们对文本有了一个大致的了解,也有了两种写作布局的方式。文本有许多属性和方法。在这里,我们列出一些常用的属性和方法。
文本公共属性
Java XML描述
autofontsize ohos:auto _ font _ size设置字体大小是否自动调整以填充组件。
Font ohos:text_font设置文本字体
max textlines OHOS:max _ text _ lines设置文本视图中允许的最大行数。
MultipleLine ohos:multiple_line设置文本是否在文本视图中多行显示。
Scrollable ohos:scrollable设置文本是否可以滚动。
Text ohos:text设置文本内容。
text alignment ohos:text _ alignment设置文本视图中文本的对齐方式。
设置文本视图中文本的颜色。
设置文本视图中文本的字体大小。
截断模式ohos: truncation _ mode设置文本内容超出组件宽度时的截断模式。
文本常用方法
方法名称描述
Append(String str)向文本视图中的现有文本追加一个字符串。
<Text ohos:id="$+id:text_helloworld" ohos:height="match_content" ohos:width="match_content" ohos:text="我是在XML中声明的Text。" ohos:text_size="50fp" /><Text ohos:id="$+id:text_auto_font_size" ohos:height="match_content" ohos:width="match_content" ohos:text="T" ohos:text_size="50fp" ohos:auto_font_size="true"/><Text ohos:height="match_content" ohos:width="match_content" ohos:text="Text Font" ohos:text_size="50fp" ohos:text_font="serif"/>
//2. 自动调整字体大小Text text_auto_font_size = (Text) findComponentById(ResourceTable.Id_text_auto_font_size);text_auto_font_size.setClickedListener(l -> { text_auto_font_size.append("T");});
& lttext ohos:id = & # 34;$+id:text _ hello world & # 34;ohos:height = & # 34;match _ content & # 34ohos:width = & # 34;match _ content & # 34ohos:text = & # 34;我用XML声明了文本。"ohos:text _ size = & # 34;50fp & # 34/& gt;& lttext ohos:id = & # 34;$+id:text _ auto _ font _ size & # 34;ohos:height = & # 34;match _ content & # 34ohos:width = & # 34;match _ content & # 34ohos:text = & # 34;T & # 34ohos:text _ size = & # 34;50fp & # 34ohos:auto _ font _ size = & # 34;真& # 34;/& gt;& lttext ohos:height = & # 34;match _ content & # 34ohos:width = & # 34;match _ content & # 34ohos:text = & # 34;文本字体& # 34;ohos:text _ size = & # 34;50fp & # 34ohos:text _ font = & # 34;衬线& # 34;/& gt;//2.自动调整字体大小text text _ auto _ font _ size =(text)FindComponentBoyd(resource table . id _ text _ auto _ font _ size);text _ auto _ font _ size . setclicked listener(l-& gt;{ text _ auto _ font _ size . append(& # 34;T & # 34);});
总结:以上内容是对详细介绍一下,3.1.1/]的介绍。文章内容部分转载自网络,希望对你了解文字的含义有帮助和价值。
版权声明
本站搜集来源于网络,如侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意。