【发布时间】:2018-05-21 07:06:27
【问题描述】:
这是设计的原型:https://i.stack.imgur.com/JMDRA.png 如果 listView 在滚动视图内,我无法让它滚动。无论如何我可以在启用 Mainlayout 的滚动视图以及另一个布局内的 listView 滚动的同时进行。
【问题讨论】:
标签: c# xaml listview xamarin xamarin.forms
这是设计的原型:https://i.stack.imgur.com/JMDRA.png 如果 listView 在滚动视图内,我无法让它滚动。无论如何我可以在启用 Mainlayout 的滚动视图以及另一个布局内的 listView 滚动的同时进行。
【问题讨论】:
标签: c# xaml listview xamarin xamarin.forms
应用程序开发人员不应将一个 ScrollView 嵌套在另一个中。 此外,他们应该避免嵌套其他元素 可以滚动的,比如WebView。
来源:官方doc。
嵌套的 ScrollView 是灾难,只是不要那样做。 哪个控件将在用户交互时滚动?它会完全破坏用户体验、性能等。你必须重新考虑你的用户界面。
【讨论】:
就像@EvZ 建议你不应该有一个 Listview 已经在 Scrollview 里面有一个 Scrollview 但不幸的是我们可能会在这种情况下结束。
您可以使用此 Android 自定义渲染器让您的所有列表视图在滚动视图中工作。
[assembly: ExportRenderer(typeof(Xamarin.Forms.ListView), typeof(ListViewScrollRenderer))]
namespace Glu.Droid.Renderers
{
public class ListViewScrollRenderer : ListViewRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.ListView> e)
{
base.OnElementChanged(e);
if (e.NewElement != null)
{
var listView = this.Control as Android.Widget.ListView;
listView.NestedScrollingEnabled = true;
}
}
}
}
【讨论】:
不要使用嵌套的滚动视图,您可以做的是使用按钮而不是列表视图,然后单击该列表视图作为弹出窗口的不同控制器。
【讨论】: