所以,我的应用程序上的 GridView 遇到了一个非常奇怪的问题。
我想要做的非常简单:我只想获取已安装应用程序的列表(a-la 应用程序抽屉)并在 GridView 中按字母顺序显示它们。
它工作得很好,它们都显示得很好,但是当我向下滚动查看更多应用程序并向上滚动时,顶部的应用程序会稍微偏移。更准确地说,垂直方向,每次我向下滚动超过 1-2 行并一直向上滚动时都会发生这种情况。
此外,有时我会滚动回到顶部,它会不断滚动越过顶部的应用程序而被遗忘,并且不会让我向下滚动。我不确定这些问题是否相关,但我确实想解决这两个问题。单击应用程序中的一项或切换窗口后,gridView 将完全重置为正常状态。
这只是我使用 android 布局等的第二天,尽管我之前已经进行了很长一段时间的 Java 编程,所以我可能会遗漏一些东西,但我对此并不完全陌生。
我在网上查找过,但找不到可行的答案,我已经尝试了找到的所有答案,现在我刚刚遇到我已经在代码中实现的解决方案,所以我不知道除了这里还能去哪里。
我也不确定要发布代码的哪一部分来解决这个问题,并且我不想将其与我的每个相关文件一起变成一堵巨大的文本墙,所以我将不胜感激如果有人能指导我展示什么内容,那就太好了。
我将从我的 GridView 布局、我的单独单元格布局和我的适配器的 getView 方法开始,因为这些似乎是我找到的大多数解决方案被引导到的地方。如果您需要更多我的代码,请告诉我。
布局网格
<GridView
android:id="@+id/gridView1"
android:layout_width="match_parent"
android:layout_height="488dp"
android:numColumns="5"
android:textAlignment="center"
android:verticalSpacing="5dp" >
</GridView>
</LinearLayout>
布局应用程序
<ImageView
android:id="@+id/ivIcon"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="5dip"
android:scaleType="center"
android:adjustViewBounds="true"
/>
<TextView
android:id="@+id/tvName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
/>
</LinearLayout>
获取 View
public View getView(int position, View convertView, ViewGroup parent) {
View v;
if(convertView == null){
v = LayoutInflater.from(mContext).inflate(R.layout.layout_app, null);
//mContext is defined in the constructor for my Adapter
}else{
v = convertView;
}
ImageView icon = (ImageView)v.findViewById(R.id.ivIcon);
TextView name = (TextView)v.findViewById(R.id.tvName);
icon.setImageDrawable(getItem(position).getIcon());
name.setText(getItem(position).getName());
//getIcon and getName are from a custom App class made to store app info.
return v;
}
我有它的图片,但由于我的声誉,我不允许我发布它们或提供所有图片的链接,所以如果您想具体查看某些内容,请询问我。
P.S.:我遇到的另一个小问题是,某些图标似乎没有完全缩小到 ImageView 的大小,但据我所知,这完全无关,也不是本文的重点。如果你愿意的话,你也可以帮助我:P最佳答案
我明白了,尽管我不太清楚为什么会发生这种情况。显然,由于我没有对各个单元格进行硬编码高度,因此它们会根据周围的文本进行调整并更改大小,从而更改其他单元格的位置。我仍然不知道为什么会发生整个过度滚动的事情,我认为这只是 gridview 的一个错误,但我觉得很奇怪,没有人提到它。哦,好吧...
关于android - 滚动后 GridView 元素随机重新定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24420844/