想用scrollView封装下antd reactnativr的tabbar但是每次点击都会scrollVIew的位置不能固定
时间: 2023-12-10 18:38:55 浏览: 131
Android解决ScrollView下嵌套ListView和GridView中内容显示不全的问题
你可以通过给 ScrollView 设置 ref,然后在点击 Tab 时,调用 ScrollView 的 scrollTo 方法来实现固定位置。示例代码如下:
```jsx
import React, { useRef } from 'react';
import { View, ScrollView } from 'react-native';
import { Tabs } from '@ant-design/react-native';
const MyTabBar = ({ tabs, onChange }) => {
const scrollViewRef = useRef();
const handleTabClick = (tab, index) => {
onChange && onChange(tab, index);
scrollViewRef.current.scrollTo({ x: index * 375, y: 0, animated: true });
};
return (
<View>
<Tabs tabs={tabs} onTabClick={handleTabClick} />
<ScrollView
horizontal
showsHorizontalScrollIndicator={false}
pagingEnabled
ref={scrollViewRef}
>
{tabs.map((tab, index) => (
<View style={{ width: 375 }} key={index}>
{/* 这里渲染每个 tab 对应的内容 */}
</View>
))}
</ScrollView>
</View>
);
};
export default MyTabBar;
```
在上面的示例代码中,我们通过 ScrollView 的 ref 属性获取到 ScrollView 的实例对象,并在 handleTabClick 方法中调用 scrollTo 方法,使 ScrollView 滚动到对应的位置。注意,这里的 x 值根据你的需求而定,如果每个 tab 的宽度不相同,需要计算出每个 tab 对应的 x 值。
阅读全文