4

我正在使用react-native一个 iOS 移动应用程序ListView来显示警报列表。我创建了自己的可重用列表视图组件ComponentListView,在其中我可以传入要在每一行中呈现的组件以及列表视图的数据。如果我有很多警报并且我向下滚动以查看最后的警报,它总是会滚动回顶部(请参阅下面的带有症状的 rnplay 示例应用程序),因此我最终无法对警报进行操作. 我认为这可能与我创建ComponentListView组件的方式有关,因为如果我只使用一个简单的ListView组件,它会按预期工作,但我需要使用ComponentListView组件,因为我有许多不同的屏幕,我必须在其中显示具有不同组件的列表它简化了我的工作。

我在 rnplay 上创建了一个示例应用程序,它显示了这些症状。请在 iOS 上运行。这里AlarmList用于ComponentListView显示警报列表,AlarmSummary是每行中显示的组件。

rnplay 上的示例应用程序

我尝试使用 ComponentListView 的渲染方法中的一些控制台日志语句对其进行调试,以检查组件是否在滚动时一次又一次地重新渲染,但似乎并非如此。我也尝试在 Chrome 调试器中进行调试,但我有点没有想法,不知道如何/在哪里调试。

如果您有任何解决问题的建议,请告诉我。

4

2 回答 2

7

也赋予flex: 1属性sceneContainer,例如:

sceneContainer: {
  flex: 1,
  marginTop: 60
},

在这里工作:https ://rnplay.org/apps/TL9N9g

于 2016-05-15T07:30:38.107 回答
0

为简单起见:您需要设置 ListView 本身的高度使用显式“高度”值或通过在样式中设置“flex”来设置容器/父元素的高度。

<View style={{flex:1}}>
   <ListView />
</View>

<View>
   <ListView style={{height:300}} />
</View>
于 2017-02-05T22:57:06.677 回答