Giter VIP home page Giter VIP logo

mao-rn-android-kit's Introduction

NPM Package

mao-rn-android-kit

为 React Native 开发 提供的一些Android原生模块/组件

examples


包含组件

  • CoordinatorLayout
  • AppBarLayout
  • CollapsingTollbarLayout
  • TabLayout
  • NestedScrollView
  • PopupWindow

包含模块

  • ExtraDimensions
  • Gravity

安装

第一步、执行 npm install mao-rn-android-kit --save 安装 该npm包

第二步、配置你项目中的 android/settings.gradle 文件

....

include ':mao-rn-android-kit'
project(':mao-rn-android-kit').projectDir = new File(settingsDir, '../node_modules/mao-rn-android-kit/android')

第三步、配置你项目中的 android/app/build.gradle 文件

...
dependencies {
    ...
    compile project(':mao-rn-android-kit') // <-- 加入这条
}

第四步、在你项目的 android 源码中注册该模块

最新版的目标文件地址是 android/app/src/main/your.domain/MainApplication.java

v27版本的目标文件地址是 android/app/src/main/your.domain/MainActive.java

...

import com.maornandroidkit.KitsPackage; // <-- 导入模块

...

    @Override
    protected List<ReactPackage> getPackages() {
        return Arrays.<ReactPackage>asList(
            ...
            new KitsPackage() // <--- 将 LibsPackage 实例 添加在这
        );
    }
...

第五步、在项目中使用

import {
    CoordinatorLayoutAndroid,
    AppBarLayoutAndroid,
    TabLayoutAndroid,
    NestedScrollViewAndroid,
    ExtraDimensionsAndroid,
    PopupWindowAndroid
} from 'mao-rn-android-kit';


// 详细请看 源码中的 example/index.android.js 使用例子


查看Demo

demo 位于 example/ 目录下

# > mao-rn-android-kit/
$ cd example/
$ npm install
$ react-native run-android

API

CoordinatorLayoutAndroid

属性

layoutParams: {
    width: number | "match_parent" | "wrap_content"
    height: number | "match_parent" | "wrap_content"
}

fitsSystemWindows: boolean;

方法

/**
 * 设置目标元素 app:layout_behavior 为  AppBarLayout.ScrollingViewBehavior
 * @param {Component} view 目标视图, 必须是 NestedScrollView 或 RecyclerView, 或者这两者的父容器
 */
setScrollingViewBehavior(view: Component);

/**
 * 将CoordinatorLayout 控制的AppBarLayout 伸缩效果重置到初始位置
 * @param {AppBarLayout} appbar
 * @param {boolean} nestedScrollEnabled 控制 CoordinatorLayout 是否响应 scrollview 滚动, 默认是true
 * @param {boolean} smoothly 是否开启平滑滚动的动画效果,默认不开启
 */
resetBehavior(appbar: AppBarLayout, nestedScrollEnabled, smoothly: boolean);


AppBarLayoutAndroid

常量

// 以下常量配合 scrollFlag属性用
AppBarLayoutAndroid.SCROLL_FLAG_ENTRY_ALWAYS
AppBarLayoutAndroid.SCROLL_FLAG_ENTRY_ALWAYS_COLLAPSED
AppBarLayoutAndroid.SCROLL_FLAG_EXIT_UNTIL_COLLAPSED
AppBarLayoutAndroid.SCROLL_FLAG_SCROLL
AppBarLayoutAndroid.SCROLL_FLAG_SNAP

属性

layoutParams: {
    width: number | "match_parent" | "wrap_content"
    height: number | "match_parent" | "wrap_content"
    scrollFlag: number
}

fitsSystemWindows: boolean;

TabLayoutAndroid

属性

//选项卡项目
tabs: { text: string }[];

//选项卡字体大小
tabTextSize: number;

//选项卡项目默认字体颜色
tabTextColor: string;

//选项卡项目选中字体颜色
tabSelectedTextColor: string;

//选项卡下标线颜色
tabIndicatorColor: string;

//选项卡下标线高度
tabIndicatorHeight: number;

//选项卡项目布局模式
tabMode: "scrollale" | "fixed";

//选卡布局位置
tabGravity: "center" | "fill";

//选项卡高度
tabHeight: number;

//选项卡侧边(左右边)边距
tabSidePadding: number;

方法

/**
 * 绑定 viewPager
 * @param {ViewPagerAndroid} viewPager
 *  绑定的viewPager组件
 * @param {{text: string}[]} tabs
 *  设置选项卡项目
 * @param {boolean} smoothScroll
 *  从选项卡被选中后触发viewPager的同步切换时 是否开启平滑滚动的动画效果,默认开启
 */
setViewPager(viewPager: ViewPagerAndroid, tabs: {text: string}[], smoothScroll: boolean);

/**
 * 设置 宽高尺寸, 使用 TabLayout的 Layoutparams 修改这些尺寸信息
 * @param {number | "wrap_content" | "match_parent"} width
 * @param {number | "wrap_content" | "match_parent"} height
 */
setViewSize(width: number | "wrap_content" | "match_parent", height?: number | "wrap_content" | "match_parent");

NestedScrollViewAndroid

属性, 继承 ScrollView 的属性

...

//显示水平轴滚动标记
showVerticalScrollIndicator: boolean;

方法, 继承 ScrollView的方法



ExtraDimensionsAndroid

方法

/**
 * 获取设备实际屏幕高度
 * @return {boolean}
 */
getScreenHeight(): number;

/**
 * 获取设备实际屏幕宽度
 * @return {boolean}
 */
getScreenWidth(): number;

/**
 * 获取魅族SmartBar高度
 * @return {boolean}
 */
getSmartBarHeight(): number;

/**
 * 获取软键盘导航按钮高度
 * @return {boolean}
 */
getSoftMenuBarHeight(): number;

/**
 * 获取状态栏高度
 * @return {boolean}
 */
getStatusBarHeight(): number;

/**
 * 获取APP可视容器宽度
 * @return {boolean}
 */
getAppClientWidth(): number;

/**
 * 获取APP可视容器高度
 * @return {boolean}
 */
getAppClientHeight(): number;

PopupWindowAndroid

方法

/**
 * 将弹出窗口显示在目标视图元素下方
 * @param {Component}  view
 *  目标视图元素
 * @param {number} x
 *  x轴偏移
 * @param {number} y
 *  y轴偏移
 */
showAsDropdown(view: Component, x: number, y: number): void;

/**
 * 将弹出窗口显示在指定位置
 * @param {number} gravity
 *  详细值参考 [Gravity](https://developer.android.com/reference/android/view/Gravity.html)
 * @param {number} x
 *  x轴偏移
 * @param {number} y
 *  y轴偏移
 */
showAsLocation(gravity: number, x: number, y: number): void;

/**
 * 隐藏弹出层窗口
 */
hide(): void;

属性

// focusable
focusable?: boolea;

// 弹出窗口内是否接收触摸事件
touchable?: boolea;

// 点击弹出窗口外时 是否隐藏弹出窗口
outsideTouchable?: boolean;

CollapsToolbarLayout

方法


属性

// 遮罩颜色
contentScrimColor: string(color value);

// toolbar 标题 在 CollapseToolBarLayout 收起时显示位置
collapsedTitleGravity: number;

// toolbar 标题 在 CollapseToolBarLayout 收起时显示的字体颜色
collapsedTitleColor: string(color value);

// toolbar 标题 在 CollapseToolBarLayout 展开时显示的字体颜色
expandedTitleColor: string(color value);

// toolbar 标题 在 CollapseToolBarLayout 展开时显示位置
expandedTitleGravity: number(Gravity);

// toolbar 标题 在 CollapseToolBarLayout 展开时 外边距控制
expandedTitleMargin: number[];

// toolbar 标题 在 CollapseToolBarLayout 展开时 外左边距控制
expandedTitleMarginStart: number;

// toolbar 标题 在 CollapseToolBarLayout 展开时 外上边距控制
expandedTitleMarginTop: number;

// toolbar 标题 在 CollapseToolBarLayout 展开时 外右边距控制
expandedTitleMarginEnd: number;

// toolbar 标题 在 CollapseToolBarLayout 展开时 外下边距控制
expandedTitleMarginBottom: number;

// 遮罩过度动画持续时间(ms)
scrimAnimationDuration: number;

// 设置收起多少高度时,显示遮罩的内容
scrimVisibleHeightTrigger: number;

// 是否显示遮罩
scrimsShown: boolean;

// 是否显示遮罩动画
scrimsShownAnimate: boolean;

// 状态栏遮罩颜色
statusBarScrimColor: string;

// 标题
title: string;

// 启用标题开关
titleEnable: boolean;

GravityAndroid

Gravity

参考过:

mao-rn-android-kit's People

Contributors

maolion avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mao-rn-android-kit's Issues

mao-rn-android-kit\android\src\main\java\com\maornandroidkit\KitsPackage.java:32: 错误: 方法不会覆盖或实现超类型的方法

你好,我尝试引入这个组件,然后遇到了一个编译错误,希望你可以帮我看看。

"react": "16.2.0"
"react-native": "0.52.2"

compileSdkVersion 23
buildToolsVersion "23.0.1"
minSdkVersion 16
targetSdkVersion 22
:mao-rn-android-kit:incrementalReleaseJavaCompilationSafeguard UP-TO-DATE
:mao-rn-android-kit:compileReleaseJavaWithJavac
:mao-rn-android-kit:compileReleaseJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
E:\mygit\react-native-image-header-scroll-view-example\node_modules\mao-rn-android-kit\android\src\main\java\com\maornandroidkit\KitsPackage.java:32: 错误: 方法不会覆盖或实现超类型的方法
  @Override
  ^
E:\mygit\react-native-image-header-scroll-view-example\node_modules\mao-rn-android-kit\android\src\main\java\com\maornandroidkit\managers\NestedScrollViewManager.java:20: 错误: NestedScrollVie
wManager不是抽象的, 并且未覆盖ScrollCommandHandler中的抽象方法flashScrollIndicators(MNestedScrol
lView)
public class NestedScrollViewManager
       ^
E:\mygit\react-native-image-header-scroll-view-example\node_modules\mao-rn-android-kit\android\src\main\java\com\maornandroidkit\widgets\MNestedScrollView.java:35: 错误: 无法将类 ScrollEvent中
的方法 obtain应用到给定类型;
            ScrollEvent.obtain(
                       ^
  需要: int,ScrollEventType,int,int,float,float,int,int,int,int
  找到: int,ScrollEventType,int,int,int,int,int,int
  原因: 实际参数列表和形式参数列表长度不同
注: E:\mygit\react-native-image-header-scroll-view-example\node_modules\mao-rn-android-kit\andro id\src\main\java\com\maornandroidkit\widgets\MTabLayout.java使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
注: E:\mygit\react-native-image-header-scroll-view-example\node_modules\mao-rn-android-kit\andro id\src\main\java\com\maornandroidkit\managers\NestedScrollViewManager.java使用了未经检查或不安全
的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
3 个错误
:mao-rn-android-kit:compileReleaseJavaWithJavac FAILED

Example with ListView crashes

Hello @maolion, so I copied and ran your example with ListView and RefreshControl, but the app crashes each time I tried to increase the number of rows in the list above the 10 rows you used in the example. Please do you know why this may be happening?

Thank you.

react-mixins-decorator in nested-scroll-view.js

Init new project
React-native 0.43.0

 at p.catch.error (/Users/Reuf/yd/examplekitmao/ex/node_modules/react-native/packager/src/node-haste/DependencyGraph/ResolutionRequest.js:366:19)
    at process._tickCallback (internal/process/next_tick.js:103:7)
Bundling `index.android.js`  0.0% (0/1), failed.
UnableToResolveError: Unable to resolve module `react-mixins-decorator` from `/Users/Reuf/yd/examplekitmao/ex/node_modules/mao-rn-android-kit/components/nested-scroll-view.js`: Module does not exist in the module map or in these directories:
  /Users/Reuf/yd/examplekitmao/ex/node_modules

This might be related to https://github.com/facebook/react-native/issues/4968
To resolve try the following:
  1. Clear watchman watches: `watchman watch-del-all`.
  2. Delete the `node_modules` folder: `rm -rf node_modules && npm install`.
  3. Reset packager cache: `rm -fr $TMPDIR/react-*` or `npm start --reset-cache`.
    at p.catch.error (/Users/Reuf/yd/examplekitmao/ex/node_modules/react-native/packager/src/node-haste/DependencyGraph/ResolutionRequest.js:366:19)
    at process._tickCallback (internal/process/next_tick.js:103:7)
/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */

import {
    ExtraDimensionsAndroid,
    AppBarLayoutAndroid,
    CoordinatorLayoutAndroid,
    NestedScrollViewAndroid
} from 'mao-rn-android-kit';

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View
} from 'react-native';

export default class ex extends Component {
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          Welcome to React Native!
        </Text>
        <Text style={styles.instructions}>
          To get started, edit index.android.js
        </Text>
        <Text style={styles.instructions}>
          Double tap R on your keyboard to reload,{'\n'}
          Shake or press menu button for dev menu
        </Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});

AppRegistry.registerComponent('ex', () => ex);

错误: NestedScrollViewManager不是抽象的, 并且未覆盖ScrollCommandHandler中的抽象方法

react-native-cli: 2.0.1
react-native: 0.41.2
编译错误,希望能看一下
/node_modules/mao-rn-android-kit/android/src/main/java/com/maornandroidkit/managers/NestedScrollViewManager.java:19: 错误: NestedScrollViewManager不是抽象的, 并且未覆盖ScrollCommandHandler中的抽象方法scrollToEnd(MNestedScrollView,ScrollToEndCommandData)
public class NestedScrollViewManager
^
注: /node_modules/mao-rn-android-kit/android/src/main/java/com/maornandroidkit/managers/NestedScrollViewManager.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
1 个错误
:mao-rn-android-kit:compileReleaseJavaWithJavac FAILED

TextInput inside NestedScrollViewAndroid is not focusable

Hello,

If I'm going to put a TextInput inside a NestedScrollViewAndroid and click on the TextInput an error is raises from the ScrollResponder:

Code Example:

<NestedScrollViewAndroid
  style={{ height: Dimensions.get('window').height - 70 }}
>
  <TextInput
    style={{ height: 50, backgroundColor: 'yellow' }}
  >
  </TextInput>
</NestedScrollViewAndroid>

My dependencies are:

"mao-rn-android-kit": "^0.3.21",
"react": "15.4.1",
"react-native": "0.39.2",

RecyclerViewBackedScrollView being depricated

Hello!

Firstly, thank you for your work on this packaged. I know many people use it.

I am currently trying to use this (hiding/showing header on scroll), but since ListView with RecyclerViewBackedScrollView is being deprecated.
facebook/react-native#11445
facebook/react-native#11095
facebook/react-native#7002

It is also too buggy and no one wants to maintain it on official RN repository.
https://github.com/facebook/react-native/issues?utf8=%E2%9C%93&q=RecyclerViewBackedScrollView

What is the alternative? I am not a native developer, but it seems that using NestedScrollViewAndroid is not going to perform very well on large infinite scrolling lists and there is no way of getting pull-to-refresh.

NestedScrollViewAndroid 里面添加listview

你好,我用了你的库,很好用,但我有个新的功能遇到点问题,我在NestedScrollViewAndroid里面添加listview可以正常滚动,但是listview加上下拉刷新功能时,下拉刷新不能运行出来,请问有好的解决吗?

ListView under NestedScrollView inside CoordinatorLayout not scrolling to show all items

Hi @maolion,

I really appreciate your work on this package. It did save my day however, I've got one problem when i used NestedScrollView under CoordinatorLayout there are always some items that i can't scroll to, They just stay invisible and unreachable, I just wanted to know if you have any advice regarding that problem.

Code

export default class Example extends Component {
    render() {
        var highSelected = (this.state.highSelected ? {
            textStyle: styles.highNormalLowDocListHeaderStateTextSelected,
            borderStyle: styles.highNormalLowDocListHeaderStateBorderSelected
        } : {});
        var normalSelected = (this.state.normalSelected ? {
            textStyle: styles.highNormalLowDocListHeaderStateTextSelected,
            borderStyle: styles.highNormalLowDocListHeaderStateBorderSelected
        } : {});
        var lowSelected = (this.state.lowSelected ? {
            textStyle: styles.highNormalLowDocListHeaderStateTextSelected,
            borderStyle: styles.highNormalLowDocListHeaderStateBorderSelected
        } : {});

        return (
            <View style={{flex: 1, backgroundColor: '#FFF'}}>
                <CoordinatorLayoutAndroid ref={(component) => this.coordinatorLayout = component}
                                          fitsSystemWindows={false}>
                    <AppBarLayoutAndroid
                        layoutParams={{
                            width: 'match_parent',
                            height: 112
                        }}
                        style={{ backgroundColor:"#528eff" }}>
                        <View layoutParams={{height: 56, width: this.windowWidth, scrollFlags: (
                                    AppBarLayoutAndroid.SCROLL_FLAG_SCROLL |
                                    AppBarLayoutAndroid.SCROLL_FLAG_ENTRY_ALWAYS)}} style={{height: 56}}>
                            <ToolbarAndroid
                                titleColor={'#FFF'}
                                title={this.props.title}
                                navIcon={images.arrowBack}
                                onIconClicked={() => this._goBack()}
                                onActionSelected={() => {}}
                                actions={[{title: 'Search', icon: images.search, show: 'always'}]}
                                style={[{backgroundColor: '#528eff', width: this.windowWidth, height: 56}]}/>
                        </View>
                        <View layoutParams={{height: 56, width: this.windowWidth}}
                              style={{flex: 0, flexDirection: 'row', justifyContent: 'center', width: this.windowWidth, backgroundColor: '#528eff'}}>
                            <TouchableOpacity onPress={() => this.getDocuments('high')}
                                              style={[styles.highNormalLowDocListHeaderStateTextContainer, highSelected.borderStyle]}>
                                <Text
                                    style={[styles.highNormalLowDocListHeaderStateText, highSelected.textStyle]}>HIGH</Text>
                            </TouchableOpacity>
                            <TouchableOpacity onPress={() => this.getDocuments('normal')}
                                              style={[styles.highNormalLowDocListHeaderStateTextContainer, normalSelected.borderStyle]}>
                                <Text
                                    style={[styles.highNormalLowDocListHeaderStateText, normalSelected.textStyle]}>NORMAL</Text>
                            </TouchableOpacity>
                            <TouchableOpacity onPress={() => this.getDocuments('low')}
                                              style={[styles.highNormalLowDocListHeaderStateTextContainer, lowSelected.borderStyle]}>
                                <Text
                                    style={[styles.highNormalLowDocListHeaderStateText, lowSelected.textStyle]}>LOW</Text>
                            </TouchableOpacity>
                        </View>
                    </AppBarLayoutAndroid>
                    <NestedScrollViewAndroid
                        ref={(component) => this.contentLayout = component}
                        style={{flex: 1, backgroundColor: 'transparent', height: this.windowHeight - 136}}>
                        <ListView
                            dataSource={this.state.documents}
                            enableEmptySections={true}
                            renderRow={(rowData) => this._renderRow(rowData)}
                        />
                    </NestedScrollViewAndroid>
                </CoordinatorLayoutAndroid>
                <ActivityIndicator
                    animating={this.state.animating}
                    style={[{width: this.windowWidth, height: 80, position: 'absolute', top: this.loaderMargin, bottom: 0}]}
                    size="large"
                />
            </View>
        );
    }
}

Native ListView

您好,问一个问题:我在整合native code与react code的时候出现一个问题,我是想将native端的一个ListView作为一个原生UI组件给react native使用,然而native端的ListView数据的改变不会引起reactnative
ui的重绘,需要我重新scroll以下界面才能重新出来,请问博主有没有什么解决思路?

CollapsingToolbarLayoutAndroid, AppBarLayoutAndroid, CollapsingToolbarLayoutAndroid能不能和TabLayoutAndroid同时使用?

Code

`class CoordinatorLayoutWithTabExample extends Component{

_tabTexts = [
  { text: "tab1" },
  { text: "tab2" },
  { text: "tab3" }
];

componentDidMount() {
  this.refs.coordinatorLayout.setScrollingViewBehavior(this.refs.viewPager);
  this._tabLayout.setViewPager(this._viewPager, this._tabTexts);
}

render() {
  return (
    <View style={[ { flex: 1}]}>
      <CoordinatorLayoutAndroid ref="coordinatorLayout">
        <AppBarLayoutAndroid
          style={{height: 250}}
          layoutParams={{
              width: width,
              scrollFlag: AppBarLayoutAndroid.SCROLL_FLAG_EXIT_UNTIL_COLLAPSED
          }}
        >
          <CollapsingToolbarLayoutAndroid
            expandedTitleMarginStart={20}
            expandedTitleMarginBottom={20}
            collapsedTitleColor="#ffffff"
            contentScrimColor="#2278F6"
            expandedTitleColor="#ffffff"
            layoutParams={{
              scrollFlags: (
                AppBarLayoutAndroid.SCROLL_FLAG_SCROLL |
                AppBarLayoutAndroid.SCROLL_FLAG_SNAP |
                AppBarLayoutAndroid.SCROLL_FLAG_EXIT_UNTIL_COLLAPSED
              )
            }}>
            <View
              style={{
                flex: 1,
                backgroundColor: '#4CAF50'
              }}
              layoutParams={{
                collapseParallaxMultiplie: 0.7,
                collapseMode: CollapsingToolbarLayoutAndroid.CollapseMode.COLLAPSE_MODE_PARALLAX
              }}>
              <Image source={require('./images/beer.jpg')} style={styles.image} />
            </View>
            <ToolbarAndroid
              title="Collapsing Toolbar Layout"
              titleColor="#ffffff"
              layoutParams={{
                height: 56, // required
                collapseMode: CollapsingToolbarLayoutAndroid.CollapseMode.COLLAPSE_MODE_PIN // required
              }}>
            </ToolbarAndroid>
          </CollapsingToolbarLayoutAndroid>
          <View style={{height: 38, backgroundColor: '#4889f1'}}>
            <TabLayoutAndroid
              tabMode="scrollable"
              tabSelectedTextColor="#fff"
              tabIndicatorColor="#fff"
              tabTextColor="rgba(255, 255, 255, .6)"
              tabIndicatorHeight={1}
              tabTextSize={6}
              tabSidePadding={10}
              tabHeight={38}
              ref={(component) => {
                this._tabLayout = component;
              }} />
          </View>
        </AppBarLayoutAndroid>

        <ViewPagerAndroid
          ref="viewPager"
          style={{ backgroundColor: 'transparent' }}
        >
          <FlatList
            data={data}
            renderItem={this.renderBox}
            renderScrollComponent={this.renderScroll}
            /> 
          <FlatList
            data={data}
            renderItem={this.renderBox}
            renderScrollComponent={this.renderScroll}
            />  
          <FlatList
            data={data}
            renderItem={this.renderBox}
            renderScrollComponent={this.renderScroll}
          /> 
        </ViewPagerAndroid>
      </CoordinatorLayoutAndroid>
    </View>
  );
};

renderBox(item) {
  return (
    <View style={styles.box} />
  )
}
renderScroll(props) {
  return (
    <NestedScrollViewAndroid {...props} style={styles.nestedScroll} />
  )
}

};`
想要CollapsingToolbarLayoutAndroid, AppBarLayoutAndroid, CollapsingToolbarLayoutAndroid和TabLayoutAndroid同时使用,也就是内容的下半部分是tab,通过滚动能够实现tab标题部分的置顶。
我用上面的代码试了下,其他都很好(tab页也可以左右滑动),但是tab的标题(this._tabTexts)不显示。
麻烦您帮忙看看。。。

Please, share sample your app

Hello @maolion,

I was wondering if you can share your sample app (as shown in the gif you have on the README) - perhaps as a folder on this repo? This would simplify getting started with your library. Thanks.

NestedSrollView doesn't show vertical scroll bars

Thanks for your hard work first. The NestedScrollView plays in my app very well with the CoordinatorLayout, however I notice that the vertical scroll bars doesn't show at all, and the example demo app seems the same:

image

I have tried the property showVerticalScrollIndicator but it has no effect. Is there something wrong with the way I use NestedScrollView? Thanks in advance

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.