ohos扩展包——Scroller、Toolbar

jacksky
发布于 2021-9-29 18:22
浏览
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:
    ...
    "abilities": [
        {
            "metaData": {
                "customizeData": [
                    {
                        "name": "hwc-theme",
                        "value": "androidhwext:style/Theme.Emui.NoTitleBar",
                        "extra": ""
                    }
                ]
            },
            ...
        },
        ...
    ]​
  • 在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-29 18:22:35修改
收藏
回复
举报
回复
    相关推荐