Tag: android gridview

如何用RecyclerView完全替代listView / GridView?

我注意到,新的RecyclerView类,尽pipe它使事情更清洁一点,缺乏我熟悉的许多function: 分隔线,但这可以通过看这个post或这个问题来解决 “footerDividersEnabled” “headerDividersEnabled” “listSelector”,但也许我应该简单地设置每个视图? “fastScrollEnabled” “smoothScrollbar” “textFilterEnabled” 我还试图找出是否有一种新的方法来使用新的类进行过滤(通过实现Filterable与ListView完成)。 我找不到是否有这样的事情 “tools:listitem”,以显示UIdevise器上的项目。 这些是我用的,但也许还有其他的我错过了。 是否有任何教程或一些指导如何取代这些东西?

具有两列的Gridview和自动resize的图像

我正在试图使两列的网格视图。 我的意思是每行两张照片并排,就像这张照片一样。 但我的照片之间有空间,因为它的大小不一样。 这是我得到的。 您可以看到第一张图片隐藏了显示联系人姓名和电话号码的图例。 而其他图片没有正确拉伸。 这是我的GridView XML文件。 正如你所看到的columnWidth设置为200dp 。 我希望它是自动的 ,所以图片将自动调整为每个屏幕大小。 <?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridViewContacts" android:layout_width="fill_parent" android:layout_height="fill_parent" android:numColumns="2" android:columnWidth="200dp" android:stretchMode="columnWidth" android:gravity="center" /> 这里是项目xml文件,它代表每个项目本身。 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/imageViewContactIcon" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="fitXY" /> <LinearLayout android:id="@+id/linearlayoutContactName" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:paddingLeft="5dp" android:paddingTop="5dp" android:paddingBottom="5dp" android:background="#99000000" android:layout_alignBottom="@+id/imageViewContactIcon"> <TextView android:id="@+id/textViewContactName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFFFFF" […]

GridLayout(不是GridView)如何均匀拉伸所有的孩子

我想要一个2×2的网格,里面有一个button。 这只是ICS,所以我正在尝试使用新的GridLayout。 这是我的布局的XML: <?xml version="1.0" encoding="utf-8"?> <GridLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/favorites_grid" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00ff00" android:rowCount="2" android:columnCount="2"> <Button android:text="Cell 0" android:layout_row="0" android:layout_column="0" android:textSize="14dip" /> <Button android:text="Cell 1" android:layout_row="0" android:layout_column="1" android:textSize="14dip" /> <Button android:text="Cell 2" android:layout_row="1" android:layout_column="0" android:textSize="14dip" /> <Button android:text="Cell 3" android:layout_row="1" android:layout_column="1" android:textSize="14dip" /> </GridLayout> 问题是,我的意见不是平均每行拉伸。 这导致了我的GridLayout右边的很多额外的空间。 我试过设置layout_gravity="fill_horizontal"但只适用于行上的最后一个视图。 这意味着单元1一直延伸到为单元0提供足够的空间。 关于如何解决这个问题的思考?

GridView VS GridLayout在Android应用程序

我必须使用网格来实现在Android的照片浏览器,我想知道GridView和GridLayout之间的区别 。 我正在使用GridViewdynamic显示图像

GridView行重叠:如何使行高适合最高的项目?

像这个以前的人一样 ,我在GridView项目之间有不必要的重叠: 请注意文本,除了最右边的列以外的每一列。 在那里我不同于以前的问题是,我不想要一个恒定的行高度 。 我希望行高不同,以适应每行最高的内容 ,以有效利用屏幕空间。 查看GridView的源代码 (不是授权拷贝,但是kernel.org仍然是down),我们可以在fillDown()和makeRow()中看到最后一个View是“参考视图”:行的高度设置为该视图的高度,而不是最高的那个。 这解释了为什么最右边的列是好的。 不幸的是,GridView没有很好的设置,我通过inheritance来解决这个问题。 所有相关的领域和方法都是私有的。 那么,在我采取“克隆和拥有”这个老套的路线之前, 我有没有在这里错过的一个骗局? 我可以使用一个TableLayout,但是这将需要我自己实现numColumns="auto_fit" (因为我想例如只是在电话屏幕上的一个长列),它也不会是一个AdapterView,这感觉就像它应该成为。 编辑:其实克隆和自己在这里是不实际的。 GridView依赖于父类和兄弟类的不可访问部分,并且会导致至less导入6000行代码(AbsListView,AdapterView等)

ListView的回收机制如何工作

所以我遇到了这个问题,当然我在这里要求帮助。 Luksprog的回答非常好,因为我不知道ListView和GridView如何通过回收Views来优化自己。 所以他的build议,我能够改变我如何添加视图到我的GridView。 问题是现在我有一些没有意义的东西。 这是我从我的BaseAdapter getView : public View getView(int position, View convertView, ViewGroup parent) { if(convertView == null) { LayoutInflater inflater = LayoutInflater.from(parent.getContext()); convertView = inflater.inflate(R.layout.day_view_item, parent, false); } Log.d("DayViewActivity", "Position is: "+position); ((TextView)convertView.findViewById(R.id.day_hour_side)).setText(array[position]); LinearLayout layout = (LinearLayout)convertView.findViewById(R.id.day_event_layout); //layout.addView(new EventFrame(parent.getContext())); TextView create = new TextView(DayViewActivity.this); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 62, getResources().getDisplayMetrics()), 1.0f); […]