Questions tagged «listview»

ListView是大多数现代操作系统中的UI库提供的图形屏幕控件或窗口小部件,用于以列表形式显示项目。

16
警告:数组或迭代器中的每个子代都应具有唯一的“键”道具。检查`ListView`的渲染方法
我使用ReactNative为iOS和android构建了一个带有的应用ListView。当使用有效的数据源填充listview时,屏幕底部将显示以下警告: 警告:数组或迭代器中的每个子代都应具有唯一的“键”道具。检查的渲染方法ListView。 此警告的目的是什么?消息后,它们链接到此页面,在此页面上讨论了完整的不同内容,这些内容与react native无关,而与基于Web的reactjs有关。 我的ListView是使用以下语句构建的: render() { var store = this.props.store; return ( <ListView dataSource={this.state.dataSource} renderHeader={this.renderHeader.bind(this)} renderRow={this.renderDetailItem.bind(this)} renderSeparator={this.renderSeparator.bind(this)} style={styles.listView} /> ); } 我的数据源包含以下内容: var detailItems = []; detailItems.push( new DetailItem('plain', store.address) ); detailItems.push( new DetailItem('map', '') ); if(store.telefon) { detailItems.push( new DetailItem('contact', store.telefon, 'Anrufen', 'fontawesome|phone') ); } if(store.email) { detailItems.push( …


10
通过自定义选择器的ListView项目背景
是否可以通过列表选择器将自定义背景应用于每个Listview项目? 默认选择指定@android:color/transparent的state_focused="false"情况下,但改变这一些自定义绘制不影响未选定的项目。罗曼·盖伊(Romain Guy)似乎在此答案中暗示这是可能的。 我目前正在通过在每个视图上使用自定义背景并在选择/聚焦/以任何方式显示项目时隐藏它来实现相同的效果,但是将所有这些都定义在一个位置会更加优雅。 作为参考,这是我用来尝试使其工作的选择器: <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="false" android:drawable="@drawable/list_item_gradient" /> <!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. --> <item android:state_focused="true" android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/list_selector_background_disabled" /> <item android:state_focused="true" android:state_enabled="false" android:drawable="@drawable/list_selector_background_disabled" /> <item android:state_focused="true" …
98 android  listview 

12
Android ListView分隔线
我有这个代码: <ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/cashItemsList" android:cacheColorHint="#00000000" android:divider="@drawable/list_divider"></ListView> 在哪里@drawable/list_divider: <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line"> <stroke android:width="1dp" android:color="#8F8F8F" android:dashWidth="1dp" android:dashGap="1dp" /> </shape> 但我看不到任何分隔线。

11
ListView addHeaderView导致位置增加一?
下面是带有ListView的代码段。我添加了emptyView和headerView。添加headerView会使onItemClick中的位置增加一。 因此,如果没有headerView,则第一个列表元素的位置为0,而如果标题为headerView,则第一个列表元素的位置将为1! 这会导致我的适配器出错,例如,在调用getItem()并使用其他方法时,请参见下文。奇怪的事情:即使添加了headerView,在适配器的getView()方法中,第一个列表元素的位置也是0。 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ListView list = (ListView) viewSwitcher.findViewById(R.id.list); View emptyView = viewSwitcher.findViewById(R.id.empty); list.setEmptyView(emptyView); View sectionHeading = inflater.inflate(R.layout.heading, list, false); TextView sectionHeadingTextView = (TextView) sectionHeading.findViewById(R.id.headingText); sectionHeadingTextView.setText(headerText); list.addHeaderView(sectionHeading); list.setAdapter(listAdapter); list.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) …



16
限制Android上ListView的高度
我想在下方显示一个按钮ListView。问题是,如果ListView扩展位置(添加了项目...),则按钮被推出屏幕。 我尝试了LinearLayout权重(如Android中的建议:为什么视图没有maxHeight?),但是我权重错误或者根本不起作用。 另外,我在某处找到了使用的提示RelativeLayout。在ListView随后将被与按钮上方设置android:layout_abovePARAM。 问题是我不知道以后如何放置按钮。在我发现的示例中,下方的“视图” ListView已使用进行了调整android:layout_alignParentBottom,但我不希望按钮紧贴屏幕底部。 除了使用setHeight方法和所需空间的一些计算外,还有其他想法吗? 编辑: 我得到了很多有用的答案。 bigstone和user639183的解决方案几乎可以完美运行。但是,我必须在按钮底部添加一个额外的填充/边距,因为它仍会被推到屏幕的一半(但随后停止) 如果要将按钮固定在屏幕底部,则只有相对布局的Adinia答案就可以了。这不是我想要的,但对于其他人可能仍然有用。 我最终选择了AngeloS的解决方案,因为它只是创建了我想要的效果。但是,我LinearLayout对按钮周围的做了两个小的更改: 首先,因为我不希望在我的布局任何绝对值,我换android:layout_height="45px"到wrap_content,其工作也很不错。 其次,由于我希望按钮在水平方向居中(仅垂直支持)LinearLayout,因此将android:orientation =“ horizo​​ntal”更改为“ vertical”。 AngeloS在最初的帖子中还说过,他不确定周围的android:layout_weight="0.1"参数是否有效果;我只是试过,实际上确实如此!没有,按钮再次被推出屏幕。LinearLayoutListView

12
ListView setOnItemClickListener通过添加按钮不起作用
我有一个在每行中都有文本和按钮的列表视图,列表视图setOnItemClickListener()不起作用。是否可以以不同的方式处理项目单击和按钮单击事件(项目单击应调用ActivityA,按钮单击应调用ActivityB)。有没有人有办法解决吗 private ArrayList<String> userIDArr = null; private ArrayList<String> userNameArr = null; private DatabaseHelper dbHelper = null; private ListView userListView=null; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.list_view); dbHelper = new DatabaseHelper(this.getApplicationContext()); Map<String,ArrayList<String>> displayMap = dbHelper.getUserListToDisplay(); userIDArr = displayMap.get("UserID"); userNameArr = displayMap.get("FirstName1"); userListView = (ListView) findViewById(R.id.listView2); userListView.setAdapter(new UserListAdapter(this,userIDArr)); userListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override …
89 android  listview 

10
如何在WPF中自动调整GridViewColumn数据的大小并使其右对齐?
我怎么能够: 右对齐ID列中的文本 根据具有最长可见数据的单元格的文本长度,使各列自动调整大小? 这是代码: <ListView Name="lstCustomers" ItemsSource="{Binding Path=Collection}"> <ListView.View> <GridView> <GridViewColumn Header="ID" DisplayMemberBinding="{Binding Id}" Width="40"/> <GridViewColumn Header="First Name" DisplayMemberBinding="{Binding FirstName}" Width="100" /> <GridViewColumn Header="Last Name" DisplayMemberBinding="{Binding LastName}"/> </GridView> </ListView.View> </ListView> 部分答案: 感谢Kjetil,GridViewColumn.CellTemplate可以很好地工作,自动宽度也可以正常工作,但是当ObservativeCollection“ Collection”用比列宽长的数据更新时,列大小不会自动更新,因此这仅仅是解决方案初始显示数据: <ListView Name="lstCustomers" ItemsSource="{Binding Path=Collection}"> <ListView.View> <GridView> <GridViewColumn Header="ID" Width="Auto"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding Id}" TextAlignment="Right" Width="40"/> </DataTemplate> …

3
如何隐藏WPF ListView的标题?
我希望能够在WPF ListView中的每个网格列的顶部隐藏标题。 这是我的ListView的XAML: <Window x:Class="ListViewTest.Test0.ListViewTest" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Empty ListView Grid" Height="216" Width="435" FlowDirection="LeftToRight" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.IsSharedSizeScope="False"> <Window.Resources> <XmlDataProvider x:Key="CustomersDS" Source="C:\data.xml"/> </Window.Resources> <ListView Margin="0,0,0,50" ItemTemplate="{DynamicResource CustomerTemplate}" ItemsSource="{Binding Source={StaticResource CustomersDS}, XPath=/Customers/Customer}"> <ListView.View> <GridView> <GridViewColumn DisplayMemberBinding="{Binding XPath=Code}"/> <GridViewColumn DisplayMemberBinding="{Binding XPath=Name}"/> <GridViewColumn DisplayMemberBinding="{Binding XPath=Country}"/> </GridView> </ListView.View> </ListView> </Window> 我绑定到的数据是: <Customers> <Customer> <Code>1234</Code> <Name>EPI</Name> <Country>Sesame …

6
在构建过程中调用setState()或markNeedsBuild
class MyHome extends StatefulWidget { @override State<StatefulWidget> createState() => new MyHomePage2(); } class MyHomePage2 extends State<MyHome> { List items = new List(); buildlist(String s) { setState(() { print("entered buildlist" + s); List refresh = new List(); if (s == 'button0') { refresh = [ new Refreshments("Watermelon", 250), new Refreshments("Orange", 275), …

10
使WPF ListView / GridView在列标题单击时排序的最佳方法?
互联网上有许多解决方案,试图弥补WPF似乎很基础的遗漏。对于“最佳”方式,我确实感到困惑。例如...我希望列标题中有向上/向下的小箭头,以指示排序方向。显然,有3种不同的方法可以执行此操作,有些使用代码,某些使用标记,某些使用标记加代码,而所有这些似乎都像是黑客。 有没有人遇到过这个问题,找到了他们完全满意的解决方案?WPF缺少这样一个基本的WinForms功能似乎很奇怪,需要加以破解。

5
如何加快将项目添加到ListView的速度?
我要在WinForms ListView中添加几千个(例如53,709个)项目。 尝试1:13,870 ms foreach (Object o in list) { ListViewItem item = new ListViewItem(); RefreshListViewItem(item, o); listView.Items.Add(item); } 这非常糟糕。最明显的第一个解决方法是致电BeginUpdate/EndUpdate。 尝试2:3,106 ms listView.BeginUpdate(); foreach (Object o in list) { ListViewItem item = new ListViewItem(); RefreshListViewItem(item, o); listView.Items.Add(item); } listView.EndUpdate(); 这样比较好,但是仍然慢了一个数量级。让我们将创建ListViewItems与添加ListViewItems分开,以便找到真正的罪魁祸首: 尝试3:2,631 ms var items = new List<ListViewItem>(); foreach (Object o …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.