ohos扩展包——Scroller、Toolbar

jacksky
发布于 2021-9-26 17:34
浏览
0收藏

Scroller

与Android api保持一致

使用

参考其他Scroller教程

注意

由于一些系统的差异,导致使用起来需要注意:

1.Android中的Scroller与ScrollerCompact都可以用Scroller类替换

2.在借助Scroller与Runnable做惯性滚动时,Android可以借助View的post方法反复post Runnable来更新ui,鸿蒙的component没有post方法因此需要借助EventHandler来实现:

mHandler = new EventHandler(EventRunner.getMainEventRunner());

mHandler.postTask(runnable, 10); //此处需要延迟执行,不然在ohos中会立马执行这个runnable从而导致线程阻塞造成卡顿

Toolbar

具体用法与Android中大致一致。

使用

参考其他Toolbar教程。

新增属性

  • statusBarHeight 默认通过WindowUtil获取状态栏高度,如果要去掉状态栏将此属性设置为0vp
  • statusBarBackground 默认透明
  • hideNavigationIcon 隐藏导航图标,默认为true
    <com.ryan.ohos.extension.widget.toolbar.Toolbar
        ...
        ohos:hideNavigationIcon="false"
        ohos:statusBarHeight="30vp"
        ohos:statusBarBackground="$color:primaryColor" />​

statusBar相关属性需要配合透明状态栏一起使用:

  • config.json中,为ability增加metaData:
  • 在ability的onStart中增加如下代码:
       @Override
        public void onStart(Intent intent) {
            super.onStart(intent);
    
            WindowManager.getInstance().getTopWindow().get().setStatusBarColor(Color.TRANSPARENT.getValue());
            getWindow().addFlags(WindowManager.LayoutConfig.MARK_TRANSLUCENT_STATUS);
    
            setUIContent(ResourceTable.Layout_ability_main);
        }​

原有属性

  • gravity 设置Toolbar子元素(除开按钮)垂直对齐方式,如center、top
  • buttonGravity 设置Toolbar按钮的垂直对齐方式,如center、top
  • titleMargin
  • titleMarginStart
  • titleMarginEnd
  • titleMarginTop
  • titleMarginBottom
  • navigationIconWidth
  • maxButtonHeight
  • contentInsetStartWithNavigation
  • contentInsetEndWithActions
  • collapseIcon
  • title
  • subtitle
  • navigationIcon
  • logo
  • titleTextColor
  • subtitleTextColor
  • titleTextSize
  • subtitleTextSize

默认值

Toolbar的默认值可以查看src\main\resources\base\element\toolbar.json

标题居中ohos扩展包——Scroller、Toolbar-鸿蒙开发者社区

 

  1. 不设置Toolbar的title
  2. 包裹一个Text,并将layout_gravity属性设置为center
<com.ryan.ohos.extension.widget.toolbar.Toolbar
    ohos:id="$+id:toolbar"
    ohos:height="$float:toolbarHeight"
    ohos:width="match_parent">
    
    <Text
        ohos:height="match_content"
        ohos:width="match_content"
        ohos:text_size="15vp"
        ohos:text_color="#fff"
        ohos:text="title"
        ohos:layout_gravity="center"/>

</com.ryan.ohos.extension.widget.toolbar.Toolbar>

未实现功能

  • Menu相关

已于2021-9-26 17:34:32修改
收藏
回复
举报
回复
    相关推荐