代码拉取完成,页面将自动刷新
import { TitleBar } from '@smarthane/titlebar'
import promptAction from '@ohos.promptAction'
@Entry
@Component
struct Index {
private swiperController: SwiperController = new SwiperController()
private data: MyDataSource = new MyDataSource([])
private scroller: Scroller = new Scroller()
@State model1: TitleBar.Model = new TitleBar.Model()
.setOnLeftClickListener(() => {
promptAction.showToast({
message: "点击了左边返回按钮",
duration: 2000
})
})
.setTitleName("默认标题栏")
@State model2: TitleBar.Model = new TitleBar.Model()
.setLeftIcon(null)
.setTitleTextStyle(FontStyle.Italic)
.setTitleName("不带返回按钮并且标题为斜体")
@State model3: TitleBar.Model = new TitleBar.Model()
.setTitleTextOverflowType(TitleBar.TitleTextOverflowType.MARQUEE)
.setTitleName("标题栏文字过长跑马灯效果,标题栏文字过长跑马灯效果。")
.setTitleFontColor(Color.Green)
@State model4: TitleBar.Model = new TitleBar.Model()
.setTitleName("主标题主标题文本超长时显示不下的文本用省略号代替")
.setSubTitleName("副标题文本超长时显示不下的文本用省略号代替")
@State model5: TitleBar.Model = new TitleBar.Model()
.setTitleName("主副标题文字过长跑马灯效果。主副标题文字过长跑马灯效果。")
.setTitleTextOverflowType(TitleBar.TitleTextOverflowType.MARQUEE)
.setSubTitleName("副标题副标题副标题副标题副标题副标题副标题")
.setSubTitleTextOverflowType(TitleBar.TitleTextOverflowType.MARQUEE)
@State model6: TitleBar.Model = new TitleBar.Model()
.setTitleName("主标题不动,副标题文字过长跑马灯效果。")
.setSubTitleName("副标题副标题副标题副标题副标题副标题副标题")
.setSubTitleFontColor(Color.Orange)
.setSubTitleTextOverflowType(TitleBar.TitleTextOverflowType.MARQUEE)
@State model7: TitleBar.Model = new TitleBar.Model()
.setLeftTitleName("返回")
.setTitleName("返回按钮文字")
@State model8: TitleBar.Model = new TitleBar.Model()
.setTitleName("标题标题标题")
.setRightIcon($r("app.media.more_black"))
@State model9: TitleBar.Model = new TitleBar.Model()
.setLeftTitleName("扫描")
.setLeftIcon($r("app.media.scan_black"))
.setLeftIconGravity(TitleBar.IconGravity.TOP)
.setLeftIconWidth(35)
.setLeftIconHeight(35)
.setLeftTitleFontSize(10)
.setLeftTitleFontColor(Color.Blue)
.setRightTitleName("打印")
.setRightIcon($r("app.media.print_black"))
.setRightIconGravity(TitleBar.IconGravity.TOP)
.setRightIconWidth(35)
.setRightIconHeight(35)
.setRightTitleFontSize(10)
.setTitleName("主标题可设置大小和颜色")
.setTitleFontColor(Color.Red)
.setOnLeftClickListener(() => {
promptAction.showToast({
message: "扫描",
duration: 2000
})
})
.setOnRightClickListener(() => {
promptAction.showToast({
message: "打印",
duration: 2000
})
})
@State model10: TitleBar.Model = new TitleBar.Model()
.setTitleName("标题栏可以点击")
.setOnTitleClickListener(() => {
promptAction.showToast({
message: "点击了标题栏",
duration: 2000
})
})
@State model11: TitleBar.Model = new TitleBar.Model()
.setTitleName("自定义布局右边")
.setOnTitleClickListener(() => {
promptAction.showToast({
message: "点击了标题栏",
duration: 2000
})
})
@State model12: TitleBar.Model = new TitleBar.Model()
.setTitleName("自定义布局标题栏")
.setRightIcon($r('app.media.more_black'))
@State model13: TitleBar.Model = new TitleBar.Model()
.setTitleName("自定义布局左边")
@State model14: TitleBar.Model = new TitleBar.Model()
.setTitleBarStyle(TitleBar.BarStyle.NIGHT)
.setLeftTitleName("返回")
.setRightTitleName("设置")
.setOnLeftClickListener(() => {
promptAction.showToast({
message: "点击了左边返回按钮",
duration: 2000
})
})
.setTitleName("夜间模式标题栏")
@State model15: TitleBar.Model = new TitleBar.Model()
.setTitleBarStyle(TitleBar.BarStyle.LIGHT)
.setLeftTitleName("返回")
.setRightTitleName("设置")
.setOnLeftClickListener(() => {
promptAction.showToast({
message: "点击了左边返回按钮",
duration: 2000
})
})
.setTitleName("白天模式标题栏")
@State model16: TitleBar.Model = new TitleBar.Model()
.setLeftIcon(null)
.setLeftTitleName("返回")
.setRightIcon(null)
.setRightTitleName("设置")
.setTitleName("没有左右图标的标题栏")
@State model17: TitleBar.Model = new TitleBar.Model()
.setTitleBarStyle(TitleBar.BarStyle.TRANSPARENT)
.setLeftTitleName("返回")
.setRightTitleName("设置")
.setOnLeftClickListener(() => {
promptAction.showToast({
message: "点击了左边返回按钮",
duration: 2000
})
})
.setTitleName("透明标题栏")
@State model18: TitleBar.Model = new TitleBar.Model()
.setTitleBarStyle(TitleBar.BarStyle.LINEARGRADIENT)
.setTitleBarLinearGradient({
angle: 90,
colors: [[0xff0000, 0.0], [0x0000ff, 0.3], [0xffff00, 1.0]]
})
.setLeftTitleName("返回")
.setRightTitleName("设置")
.setOnLeftClickListener(() => {
promptAction.showToast({
message: "点击了左边返回按钮",
duration: 2000
})
})
.setTitleName("渐变颜色标题栏")
@State model19: TitleBar.Model = new TitleBar.Model()
.setLeftTitleName("返回")
.setRightTitleName("设置")
.setTitleBarBottomLineHeight(0.5)
.setTitleBarBottomLineColor(Color.Red)
.setOnLeftClickListener(() => {
promptAction.showToast({
message: "点击了左边返回按钮",
duration: 2000
})
})
.setTitleName("设置底部横线")
@State model20: TitleBar.Model = new TitleBar.Model()
.setLeftTitleName("返回")
.setRightTitleName("设置")
.setTitleName("隐藏底部横线")
.setShowTitleBarBottomLine(false)
@State model21: TitleBar.Model = new TitleBar.Model()
.setTitleBarStyle(TitleBar.BarStyle.LINEARGRADIENT)
.setTitleBarLinearGradient({
angle: 180,
colors: [[0x26c4fd, 0.0], [0x387cfd, 1.0]]
})
.setLeftTitleName("返回")
.setRightTitleName("确认")
.setRightTitleFontColor(Color.Red)
.setTitleName("仿QQ渐变颜色标题栏")
// 垂直滚动标题自定义view实现方式
@State model22: TitleBar.Model = new TitleBar.Model()
@State model23: TitleBar.Model = new TitleBar.Model()
.setTitleTextOverflowType(TitleBar.TitleTextOverflowType.MULTIPLE)
.setMultipleTitleList(['1.垂直滚动标题实现方式', '2.这是一个垂直滚动的标题', '3.好用好用66好用好用好用好用好用好用'])
.setMultipleTitleTextOverflowType(TitleBar.TitleTextOverflowType.ELLIPSIS)
.setMultipleTitleFontColor(Color.Blue)
.setMultipleTitleTextAlign(TextAlign.Start)
.setMultipleTitlePlayInterval(2000)
.setMultipleTitlePlayDuration(2600)
.setMultipleTitlePlayItemSpace(10)
.setRightTitleName("确认")
@Builder customRightView() {
Row({ space: 5 }) {
Column({ space: 2 }) {
Image($r('app.media.scan_black'))
.objectFit(ImageFit.Auto)
.width(30)
.height(30)
Text("扫描").fontSize(10)
}
Column({ space: 2 }) {
Image($r('app.media.print_black'))
.objectFit(ImageFit.Auto)
.width(30)
.height(30)
Text("打印").fontSize(10)
}
Column({ space: 2 }) {
Image($r('app.media.scan_black'))
.objectFit(ImageFit.Auto)
.width(30)
.height(30)
Text("333").fontSize(10)
}
}
.padding(5)
}
@Builder customCenterView() {
Row({ space: 5 }) {
Column({ space: 2 }) {
Image($r('app.media.scan_black'))
.objectFit(ImageFit.Auto)
.width(30)
.height(30)
Text("111").fontSize(10)
}
Column({ space: 2 }) {
Image($r('app.media.print_black'))
.objectFit(ImageFit.Auto)
.width(30)
.height(30)
Text("222").fontSize(10)
}
Column({ space: 2 }) {
Image($r('app.media.scan_black'))
.objectFit(ImageFit.Auto)
.width(30)
.height(30)
Text("333").fontSize(10)
}
}
.justifyContent(FlexAlign.Center)
.padding(5)
.layoutWeight(1)
}
@Builder customCenterView2() {
Row({ space: 5 }) {
Swiper(this.swiperController) {
LazyForEach(this.data, (item: string) => {
Text(item)
.textAlign(TextAlign.Center)
.fontSize(15)
.maxLines(1)
.textOverflow({ overflow: TextOverflow.Ellipsis })
}, (item: string) => item)
}
.autoPlay(true)
.interval(2000)
.indicator(false)
.loop(true)
.duration(2000)
.itemSpace(5)
.vertical(true)
.curve(Curve.Linear)
}
.justifyContent(FlexAlign.Center)
.padding(5)
.layoutWeight(1)
}
build() {
Stack({ alignContent: Alignment.TopStart }) {
Scroll(this.scroller) {
Flex({ direction: FlexDirection.Column }) {
TitleBar({ model: $model1 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({ model: $model2 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({ model: $model3 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({ model: $model4 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({ model: $model5 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({ model: $model6 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({ model: $model7 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({ model: $model8 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({ model: $model9 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({ model: $model10 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({
model: $model11,
customRightView: () => {
this.customRightView()
}
})
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({
model: $model12,
customCenterView: () => {
this.customCenterView()
}
})
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({
model: $model13,
customLeftView: () => {
this.customRightView()
}
})
TitleBar({ model: $model14 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({ model: $model15 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({ model: $model16 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({ model: $model17 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({ model: $model18 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({ model: $model21 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({ model: $model19 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({ model: $model20 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({
model: $model22,
customCenterView: () => {
this.customCenterView2()
}
})
Divider().strokeWidth(10).color(0xFFF1F0F0)
TitleBar({ model: $model23 })
Divider().strokeWidth(10).color(0xFFF1F0F0)
}
}
.scrollable(ScrollDirection.Vertical)
.scrollBar(BarState.Off)
.edgeEffect(EdgeEffect.Spring)
}
.width('100%')
.height('100%')
.backgroundColor(0xFFF1F0F0)
}
aboutToAppear(): void {
let list: Array<string> = []
for (let i = 1; i <= 10; i++) {
list.push(i.toString() + ".垂直滚动标题自定义view实现方式");
}
this.data = new MyDataSource(list)
}
}
class MyDataSource implements IDataSource {
private list: string[] = [];
private listener?: DataChangeListener;
constructor(list: string[]) {
this.list = list;
}
totalCount(): number {
return this.list.length;
}
getData(index: number): string {
return this.list[index];
}
registerDataChangeListener(listener: DataChangeListener): void {
this.listener = listener;
}
unregisterDataChangeListener() {
this.listener = undefined;
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。