# NavigationTabStrip
**Repository Path**: hihopeorg/NavigationTabStrip
## Basic Information
- **Project Name**: NavigationTabStrip
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-03-09
- **Last Updated**: 2024-05-31
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# NavigationTabStrip
**本项目是基于开源项目NavigationTabStrip进行ohos化的移植和开发的,可以通过项目标签以及github地址(https://github.com/Devlight/NavigationTabStrip )追踪到原项目版本**
#### 项目介绍
- 项目名称:具有平滑交互的导航条
- 所属系列:ohos的第三方组件适配移植
- 功能:具有平滑交互的导航条,Tab切换以及PageSlider滑动切换
- 项目移植状态:完成
- 调用差异:无
- 项目作者和维护人:hihope
- 联系方式:hihope@hoperun.com
- 原项目Doc地址:https://github.com/Devlight/NavigationTabStrip
- 原项目基线版本:v1.0.4 , sha1:e7eff1944a9f2258f84415f5f5fa4210c5868d0c
- 编程语言:Java
- 外部库依赖:无
#### 效果展示
#### 安装教程
方法1.
1. 编译har包NavigationTabStrip.har。
2. 启动 DevEco Studio,将编译的har包,导入工程目录“entry->libs”下。
3. 在moudle级别下的build.gradle文件中添加依赖,在dependences标签中增加对libs目录下har包的引用。
```
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
……
}
```
4. 在导入的har包上点击右键,选择“Add as Library”对包进行引用,选择需要引用的模块,并点击“OK”即引用成功。
方法2.
1. 在工程的build.gradle的allprojects中,添加HAR所在的Maven仓地址
```
repositories {
maven {
url 'http://106.15.92.248:8081/repository/Releases/'
}
}
```
2. 在应用模块的build.gradle的dependencies闭包中,添加如下代码:
```
dependencies {
implementation 'com.github.devlight.navigationtabstrip.ohos:navigationtabstrip:1.0.1'
}
```
#### 使用说明
1. 布局文件定义,提供控件:NavigationTabStrip
```xml
```
2. 结合PageSlider使用
```xml
```
```java(详见Demo中的MainAbilitySlice类)
LayoutScatter scatter = LayoutScatter.getInstance(getContext());
DependentLayout page0 = (DependentLayout) scatter.parse(ResourceTable.Layout_layout_page_0, null, false);
DependentLayout page1 = (DependentLayout) scatter.parse(ResourceTable.Layout_layout_page_1, null, false);
DependentLayout page2 = (DependentLayout) scatter.parse(ResourceTable.Layout_layout_page_2, null, false);
DependentLayout page3 = (DependentLayout) scatter.parse(ResourceTable.Layout_layout_page_3, null, false);
final List pages = new ArrayList<>();
pages.add(page0);
pages.add(page1);
pages.add(page2);
pages.add(page3);
mPageSlider.setProvider(new PageSliderProvider() {
@Override
public int getCount() {
return pages.size();
}
@Override
public Object createPageInContainer(ComponentContainer componentContainer, int i) {
componentContainer.addComponent(pages.get(i));
return pages.get(i);
}
@Override
public void destroyPageFromContainer(ComponentContainer componentContainer, int i, Object o) {
componentContainer.removeComponent(pages.get(i));
}
@Override
public boolean isPageMatchToObject(Component component, Object o) {
return component == o;
}
});
mNavigationTabStripCenter.setPageSlider(mPageSlider, 0);
```
#### 版本迭代
- v1.0.1