详细介绍一下,3.1.1

张强律师 法律头条 2022-11-18 21:20:45

导读:详细介绍一下,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/]的介绍。文章内容部分转载自网络,希望对你了解文字的含义有帮助和价值。

版权声明

本站搜集来源于网络,如侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意。