React Native - 根据标签栏文本宽度更改指标宽度 (react-native-tab-view)

如何解决React Native - 根据标签栏文本宽度更改指标宽度 (react-native-tab-view)

我正在使用 react-native-tab-view,并尝试更改指示器宽度。我希望 indicator widththe tab text 相同。但我所做的只是认。我尝试了很多方法,但总是给我错误的结果。标签栏也应该可以水平滚动。你能检查一下我应该改变哪个部分吗?

这是预期的结果:

enter image description here

显示所有索引代码

const styles = StyleSheet.create({
  container: {
    flex: 1,backgroundColor: colors.dark,},});

const ShowAllIndex = () => {
  const { seller } = useSelector((s) => s.auth,shallowEqual);
  const [routes] = useState([
    { key: 'best',title: 'BEST' },{ key: 'jacket',title: '아우터' },{ key: 'pants',title: '바지' },{ key: 'skirts',title: '스커트' },{ key: 'topClothe',title: '원피스' },{ key: 'one',{ key: 'two',{ key: 'three',title: '상의' },]);

  const renderScene = SceneMap({
    best: ShowAllMainRoutes,jacket: JacketRoutes,pants: PantsRoutes,skirts: SkirtsRoutes,topClothe: TopClotheRoutes,one: ShowAllMainRoutes,two: JacketRoutes,three: PantsRoutes,});

  return (
    <ScrollView style={[styles.container,{ marginTop: Global() }]}>
      <CustomTabView
        routes={routes}
        renderScene={renderScene}
        scrollEnabled={true}
        tabStyle={{ width: 'auto' }}
        showAll={true}
      />
    </ScrollView>
  );
};

export default ShowAllIndex;

自定义标签视图代码


const initialLayout = { width: Dimensions.get('window').width };

const CustomTabView = ({
  routes,renderScene,numberOfTabs,indicatorWidth,scrollEnabled = false,tabStyle,showAll,indicatorStyle,}) => {
  const [index,setIndex] = useState(0);

  const renderTabBar = (props) => (
    <TabBar
      {...props}
      scrollEnabled={scrollEnabled}
      indicatorStyle={[
        indicatorStyle,{
          backgroundColor: colors.barbie_pink,height: 2.5,bottom: -1,]}
      style={[styles.tabBar]}
      renderLabel={({ route,focused }) => {
        return (
          <Text
            style={[styles.label,focused ? styles.activeLabel : styles.label]}
          >
            {route.title}
          </Text>
        );
      }}
      tabStyle={tabStyle}
    />
  );

  return (
    <TabView
      navigationState={{ index,routes }}
      renderScene={renderScene}
      renderTabBar={renderTabBar}
      onIndexChange={setIndex}
      initialLayout={initialLayout}
      style={[styles.container]}
    />
  );
};

const styles = StyleSheet.create({
  container: {
    backgroundColor: colors.dark,scene: {
    flex: 1,marginTop: 5,tabBar: {
    backgroundColor: 'transparent',shadowOpacity: 0,elevation: 0,borderBottomWidth: 0.5,borderColor: colors.very_light_pink_two,marginBottom: 5,label: {
    color: colors.very_light_pink_four,fontSize: 14,lineHeight: 20.8,fontFamily: 'NotoSansCJKkr-Regular',letterSpacing: -0.35,activeLabel: {
    color: colors.barbie_pink,});

感谢您的回答!

解决方法

我认为 TabBar 中的道具 indicatorStyle 可以解决您的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?