回复
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
标题居中
- 不设置Toolbar的title
- 包裹一个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修改
赞
收藏
回复
相关推荐