ListView是UI库在大多数现代操作系统中提供的图形屏幕控件或窗口小部件,用于以列表形式显示项目。
我正在开发一个排行榜系统,它对地图进行排序,并在 listView 内的 listTile 上显示键,但是当我重新加载应用程序时,它不会显示任何 listTiles 任何帮助都是
在繁忙的 ListView 中更新 TextView 而不会失去 Spinner 焦点
我使用自定义用户速率对传感器进行采样(这使 ListView 忙碌),并在列表视图中显示值,因此我有一个自定义列表视图,其中包含 3 个文本视图(用于 x、y 和 z 值)和一个旋转...
Javafx:从 ListView 中删除项目时,几乎所有项目都会从列表中消失,但在刷新屏幕时会重新出现
如果有什么难以理解的地方我很抱歉,英语不是我的母语。 我正在尝试使用 JavaFX 制作一个屏幕,其中有一个 ListView,并且在列表单元格中有一个用于删除的按钮...
我正在Flutter中制作一个应用程序,但项目不适合屏幕,当我想使用ListView时,项目的位置混合在一起,看起来很糟糕,我该如何编辑这些代码? 小鬼...
参数不匹配的闭包调用:函数“TasksList.build.<anonymous closure>.<anonymous closure>.<anonymous closure>”
您好,当我尝试运行该应用程序时,我收到此错误,它表示闭包调用参数不匹配:函数“TasksList.build...” 由于这是我第一次使用该提供商,所以我...
我一直在尝试获取一些按日期排序的消息,但我没有得到它的工作。我尝试过不同的软件包,例如 grouped_list 和 Sticky_headers。 通过 Sticky_headers,我成功获得了 h...
公共类侧边栏扩展ListFragment{ @覆盖 公共无效 onCreate(捆绑保存实例状态){ super.onCreate(savedInstanceState); ArrayList pavan = 新ArrayList public class sidebar extends ListFragment{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ArrayList<String> pavan = new ArrayList<String>(); pavan.add("Short Transmission Lines"); pavan.add("Medium pi Transmission Lines"); pavan.add("Medium T Transmission Lines"); pavan.add("Long Transmission Lines"); ca kumar = new ca(getActivity(), 0, pavan); setListAdapter(kumar);}} 我正在处理列表片段。我使用了 setContentView(Listview) 而不为活动创建其他布局文件并使用活动列表视图。我怎样才能对列表片段做同样的事情,而不使用其他 xml 布局,只使用列表的列表视图 Fragment.setContentView 并返回 listview 似乎不起作用。 尝试这样: public class ListViewDemoFragment extends ListFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setListAdapter(adapter); } } 样品在这里 您可以使用setListAdapter(mAdapter); 要获取listView对象,你可以像下面这样做: ListView mListView = getListView();
我最近将 TYPO3 CMS 从版本 9 更新到版本 11,并且在列表视图中遇到了本地化下拉列表的问题。在 TYPO3 v9 中,当我处于列表视图(在事件中)时,我...
我正在尝试将一个简单的项目列表提供给 ListView (其他 Android 平台让这个工作变得省力多了)。 所以,我有这个标记: 我正在尝试将一个简单的项目列表提供给 ListView (其他 Android 平台让这个工作变得省力多了)。 所以,我有这个标记: <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MauiApp1.NewPage1" Title="NewPage1"> <ScrollView> <VerticalStackLayout> <Label Text="Welcome to .NET MAUI!" VerticalOptions="Center" HorizontalOptions="Center" /> <Button Text="Back;" x:Name="cmdBack" Clicked="cmdBack_Clicked" WidthRequest="100" HorizontalOptions="Start" VerticalOptions="Start" CornerRadius="10" /> <Button Text="Load ListView;" x:Name="cmdLoad" Clicked="cmdLoad_Clicked" WidthRequest="100" HorizontalOptions="Start" VerticalOptions="Start" CornerRadius="10" /> <ListView x:Name="ListView1" > <ListView.ItemTemplate> <DataTemplate> <TextCell Text="{Binding myitemname}" Detail="this is some detail text" /> </DataTemplate> </ListView.ItemTemplate> </ListView> </VerticalStackLayout> </ScrollView> </ContentPage> 背后的代码是这样的: public NewPage1() { InitializeComponent(); } private void cmdBack_Clicked(object sender, EventArgs e) { Navigation.PopAsync(); } private void cmdLoad_Clicked(object sender, EventArgs e) { List<oneitem> MyItems = new List<oneitem>(); for (int i = 1;i <= 3;i++) { oneitem OneNewitem = new oneitem(); OneNewitem.myitemname = "This is item " + i.ToString(); MyItems.Add(OneNewitem); } ListView1.SetBinding(ItemsView.ItemsSourceProperty, "MyItems"); } public class oneitem { public string myitemname; } 运行上面的时候,没有代码错误,但是ListView不显示数据。 因此,目标是使用简单的 for/next 循环,并基于该简单循环向 ListView 提供一些项目。 上面的页面结果是这样的: 所以,我期望的结果是: This is item 1 This is item 2 This is item 3 任何有关如何使上述代码工作的想法将不胜感激。 要将项目添加到列表视图,请按照以下步骤操作: 将 MyItems 更改为 ObservableCollection,如下所示: public ObservableCollection<oneitem> MyItems { get; set; } =new ObservableCollection<oneitem>(); 在构造函数中指定listview的itemsource: ListView1.ItemsSource = MyItems; 不要忘记设置页面的绑定上下文: BindingContext = this; 隐藏代码: public partial class MainPage : ContentPage { public ObservableCollection<oneitem> MyItems { get; set; } =new ObservableCollection<oneitem>(); public MainPage() { InitializeComponent(); ListView1.ItemsSource = MyItems; BindingContext = this; } private void cmdLoad_Clicked(object sender, EventArgs e) { for (int i = 1; i <= 3; i++) { oneitem OneNewitem = new oneitem(); OneNewitem.myitemname = "This is item " + i.ToString(); MyItems.Add(OneNewitem); } } } public class oneitem { public string myitemname { get; set; } } 输出:
我有一个列表视图(不是recyclerView),其中每一行都有一个按钮、几个文本视图和一个EditText。 一旦我单击特定按钮(“editTremp”),我希望 EditText 进入...
C#/WPF:使 GridViewColumn 可见 = false?
有谁知道是否有一个选项可以像这样隐藏 GridViewColumn: 有谁知道是否有一个选项可以像这样隐藏 GridViewColumn : <ListView.View> <GridView> <GridViewColumn Header="Test" IsVisible="{Binding Path=ColumnIsVisible}" /> </GridView> <ListView.View> 非常感谢! 编辑:为了清楚起见 不幸的是,没有“IsVisible”属性。我正在寻找一种方法来创建它。 编辑:基于反馈的解决方案如下所示: <GridViewColumn DisplayMemberBinding="{Binding Path=OptionColumn1Text}" Width="{Binding Path=SelectedEntitiy.OptionColumn1Width}"> <GridViewColumnHeader Content="{Binding Path=SelectedEntitiy.OptionColumn1Header}" IsEnabled="{Binding Path=SelectedEntitiy.OptionColumn1Width, Converter={StaticResource widthToBool}}" /> </GridViewColumn> public class WidthToBooleanConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { return (int)value > 0; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } 谢谢大家! 干杯 编辑:反映修改后的问题。 创建一个 0 宽度的列怎么样?编写一个布尔值到宽度 IValueConverter,它采用 ColumnIsVisible 作为 ConverterParmeter? public class BooleanToWidthConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture){ return ((bool) parameter)? value : 0; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture){ throw new NotImplementedException(); } } 类似: <ListView .. > <ListView.Resources> <BooleanToWidthConverter x:Key="boolToWidth" /> </ListView.Resources> <ListView.View> <GridView> <GridViewColumn Header="Test" Width= "{Binding Path=ColumnWidth, Converter={StaticResource boolToWidth}, ConverterParameter=ColumnIsVisible}" /> </GridView> <ListView.View> 这里是另一种基于将列宽度设置为零的解决方案。我稍微修改了一下。现在它的工作原理如下: 使用布尔到可见性转换器将标头的可见性绑定到 ViewModel 的布尔属性 使用标题上的附加属性将列的宽度设置为零 这是代码。 XAML: <GridViewColumn HeaderTemplate="..." HeaderContainerStyle="..."> <GridViewColumnHeader Content="Header text" Visibility="{Binding AppliesToColumnVisible, Converter={StaticResource BooleanToVisibilityConverter}}" behaviors:GridViewBehaviors.CollapseableColumn="True" /> 布尔到可见性转换器: public class BooleanToVisibilityConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { bool param = bool.Parse(value.ToString()); if (param == true) return Visibility.Visible; else return Visibility.Collapsed; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } 附加行为GridViewBehaviors.CollapseableColumn: public static readonly DependencyProperty CollapseableColumnProperty = DependencyProperty.RegisterAttached("CollapseableColumn", typeof(bool), typeof(GridViewBehaviors), new UIPropertyMetadata(false, OnCollapseableColumnChanged)); public static bool GetCollapseableColumn(DependencyObject d) { return (bool)d.GetValue(CollapseableColumnProperty); } public static void SetCollapseableColumn(DependencyObject d, bool value) { d.SetValue(CollapseableColumnProperty, value); } private static void OnCollapseableColumnChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { GridViewColumnHeader header = sender as GridViewColumnHeader; if (header == null) return; header.IsVisibleChanged += new DependencyPropertyChangedEventHandler(AdjustWidth); } static void AdjustWidth(object sender, DependencyPropertyChangedEventArgs e) { GridViewColumnHeader header = sender as GridViewColumnHeader; if (header == null) return; if (header.Visibility == Visibility.Collapsed) header.Column.Width = 0; else header.Column.Width = double.NaN; // "Auto" } 您可以通过编程方式删除它: 如果您知道标题的名称: RemoveHeaderByName(listView, "Your Header Name"); private bool RemoveHeaderByName(ListView listView, string headerName) { GridView gridView = listView?.View as GridView; if (gridView != null) { foreach(var column in gridView?.Columns) { if (column.Header as string == headerName) { if(gridView.Columns.Remove(column)) return true; } } return false; } } 或者,如果您知道标头的索引(如果可以更改标头名称,例如,如果您有本地化应用程序,那就更好了): private bool RemoveHeaderByPosition(ListView listView, int position) { GridView gridView = listView?.View as GridView; if (gridView != null && position >= gridView.Columns.Count-1) { var columnToRemove = gridView.Columns[position]; if (gridView.Columns.Remove(columnToRemove)) return true; } return false; } 一种更简单的方法,仍然使用将列宽度设置为零的概念,但没有使用 IValueConverter 的副作用(用户仍然可以将列拖得更宽),它是创建一个新的 getter/setter 来返回基于您的 ColumnIsVisible 变量的宽度,然后绑定到该变量: public double ColumnWidth { get { if (this.ColumnIsVisible) { return 100; } else { return 0; } } set { OnPropertyChanged("ColumnWidth"); } } 使您的绑定为双向,如果用户尝试将列拖得更宽,将调用OnPropertyChanged并将宽度重置为0。不过,您可能必须使用绑定代理来进行绑定。当 ColumnIsVisible 更新时,还添加对 OnPropertyChanged("ColumnWidth") 的调用:) 我已将该列设置为 width="0"。 现在该列看起来不可见。但不知道会不会影响其他什么。 这可能是一个虚拟的解决方案,但目前它有效。 我选择通过在创建一个新的类来保存GridView的状态,然后在状态发生改变的时候手动更新列表的状态,相当于不可见的时候移除,而不是隐藏他 foreach (var item in ListViewVisibilitys.Where(x => x.IsVisibility==false).ToList()) { gridView.Columns.Remove(item.gridViewColumn); } var lists = ListViewVisibilitys.Where(x => x.IsVisibility == true).ToList(); for (int i = 0; i < lists.Count; i++) { var desiredColumn = lists[i].gridViewColumn; if (gridView.Columns.Contains(desiredColumn)) { var actualIndex = gridView.Columns.IndexOf(desiredColumn); // 如果当前列的位置不正确,则将其移动到正确的位置 if (actualIndex != i) { gridView.Columns.Move(actualIndex, i); } } else { gridView.Columns.Insert(i, desiredColumn); } } 如果 Thumb.DragDelta 可以解决问题,请使用 我在列表视图中使用它作为 <ListView x:Name="MyListView"IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Path=Items}", Mode=Default, Source={StaticResource DataProvider}}" Thumb.DragDelta="Thumb_DragDelta"> public Window1() { InitializeComponent(); MyListView.AddHandler(Thumb.DragDeltaEvent, new DragDeltaEventHandler(Thumb_DragDelta), true ); void Thumb_DragDelta(object sender, DragDeltaEventArgs e) { Thumb senderAsThumb = e.OriginalSource as Thumb; GridViewColumnHeader header = senderAsThumb.TemplatedParent as GridViewColumnHeader; if (header.Column.ActualWidth < MIN_WIDTH) { header.Column.Width = MIN_WIDTH; } if (header.Column.ActualWidth > MAX_WIDTH) { header.Column.Width = MAX_WIDTH; } } }
输出png 下面是我的活动 xml: 我已从支持库迁移到 androidx。 有办法实现这一点吗? ...
Xamarin - 将 ListView 子项绑定到自定义列表属性
我在绑定到列表视图时遇到问题。 视图模型: 公共类 MainPageViewModel :INotifyPropertyChanged { 公共 MainPageViewModel() { } 私有 ObservableCollection<...
列表视图中的TextFormField无法在颤动中单击按钮时保留列表刷新时的值
我有一个带有 TextFormField 的列表视图。我可以通过单击按钮添加/删除这些值。列表中的某些数据在创建时就已存在。它是从数组更新的。但当我进入...
在使用可滚动listview.builder时使用SingleChildScrollView(颤动)
这是我的整个代码: 导入“包:flutter/material.dart”; 导入'包:testproject/components/event_tile.dart'; 导入'包:testproject/components/mybutton.dart'; 类 MenuPage 扩展
我的列表视图中的每个元素都包含一个文本和一个图像。我可以使用 JSON 从 url 获取文本并显示在列表视图中。我也能够获取图像的 url,但无法显示...
为什么我会收到此错误? 私有子 loadEmployee() 使用 frmEmployee.lvEmployee.ListItems 呼叫连接 'SQL =“从表员工中选择*” Rs.打开“SELECT * F...
我有一个List,MyStuff有一个Float类型的属性。 有些对象的属性值为 10、20、22、30。 我需要编写一个查询来查找最接近 21 的对象,在本例中它将找到...
Flutter 通过 ListView.builder 改进 ExpansionTile 性能
我正在尝试创建一个以 ListView.builder 作为子项的 ExpansionTile 视图。它工作得很好,但如果我的 ListView.builder 变大,就需要一些时间来渲染它,这……
在使用可滚动listview.builder(颤振)时使用单个singlechildscrollview
这是我的整个代码: 导入“包:flutter/material.dart”; 导入'包:testproject/components/event_tile.dart'; 导入'包:testproject/components/mybutton.dart'; 类 MenuPage 扩展