标签: android-gridview

GridView具有不同的列大小

试图创建一个可滚动的高分列表,如下所示:

foo         1000
bar         876
foobar      500
foobarfoo   1
Run Code Online (Sandbox Code Playgroud)

我目前正在使用GridView.我想将名称列宽设置为屏幕的60%,将得分列宽度设置为40%.可能吗?

目前我正在通过costum适配器尝试.这是它的getview功能:

public View getView(int position, View convertView, ViewGroup parent) {
    TextView tv;
    if (convertView == null) {
        tv = new TextView(context);
        tv.setTextSize(25);
        tv.setTextColor(Color.WHITE);              

        if (position % 2 == 0)
        {
            tv.setLayoutParams(new GridView.LayoutParams((width/10)*6, 50));
        }
        else
        {
            tv.setLayoutParams(new GridView.LayoutParams((width/10)*4, 50));
        }
    }
    else {
        tv = (TextView) convertView;
    }

    tv.setText(texts[position]);
    return tv;
}
Run Code Online (Sandbox Code Playgroud)

布局由gridview和底部的按钮构建.XML文件是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:orientation="vertical" android:id="@+id/top">
    <GridView android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:layout_weight="2"
              android:id="@+id/grid"
              android:numColumns="2"
              android:columnWidth="0dp"
              > …
Run Code Online (Sandbox Code Playgroud)

android android-gridview

7
推荐指数
2
解决办法
2万
查看次数

如何在GridView中为分隔符设置不同的背景和颜色?

我希望在GridView中为分隔符和背景保留不同的颜色.或者我想隐藏Gridview周围可见的背景颜色.我尝试更改layout_margin和padding参数,但这并没有改变任何东西.以下是我的GridView的xml布局.

<GridView android:id="@+id/gvFree" 
           android:layout_width="fill_parent"
           android:layout_height="0dp" android:layout_weight="1"
           android:columnWidth="@dimen/grid_col_wd"
           android:background="@android:color/darker_gray"
           android:layout_margin="-5dp"
           android:padding="-5dp"
           android:numColumns="auto_fit"
           android:stretchMode="columnWidth"
           android:gravity="fill"
           android:horizontalSpacing="2dp"
           android:verticalSpacing="2dp"
           ></GridView>
Run Code Online (Sandbox Code Playgroud)

请帮助.

图片

android background divider android-gridview

7
推荐指数
0
解决办法
2901
查看次数

更新gridview时如何避免闪烁?

我有一个gridview.我显示来自10个图像阵列的图像.1分钟后我又添加了5张图片.要更新gridview,我使用以下代码.

aImgAdapterL.notifyDataSetChanged();  
Run Code Online (Sandbox Code Playgroud)

aImgAdapterL是我的ImgaeAdapter.新图像正在显示.
我的问题是在更新网格视图时,在图像更新期间发生一次闪烁或闪烁.是否有可能隐藏闪烁?

android android-imageview android-gridview

7
推荐指数
3
解决办法
6869
查看次数

Android可扩展GridView就像谷歌图片一样

我想创建可扩展的GridView,其行为类似于Google图像页面.我想知道如何实现这样的功能:当我点击其中一个图像时,页面会展开并显示图片的详细信息.是否有可能在Android中做类似的事情?

图像网格: 谷歌图片

扩展图像网格: 谷歌图片扩大

android android-gridview

7
推荐指数
1
解决办法
1181
查看次数

更改android中单行gridview的背景

我正在开发一个Android应用程序,它需要显示一个书架,每行最多包含3个图像.我正在使用gridview.但我陷入了一点,我无法改变gridview中整行的背景.谁能告诉我怎么做?

用于gridview的适配器

private class SampleGridAdapter extends BaseAdapter{

    private Context context;
    private int[] images = {"R.drawable.img1","R.drawable.img2","R.drawable.img3","R.drawable.img4","R.drawable.img5","R.drawable.img6","R.drawable.img7"};
    public SampleGridAdapter(Context context) {
        super();
        this.context = context;

    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return images.length;
    }
    @Override
    public Object getItem(int arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getItemId(int arg0) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(int arg0, View arg1, ViewGroup arg2) {
        // TODO Auto-generated method stub …
Run Code Online (Sandbox Code Playgroud)

android gridview android-layout android-gridview

7
推荐指数
1
解决办法
4526
查看次数

如何在Google Keep应用程序中制作GridView动画?

我的问题

GridView在我的申请中使用.GridView有非常简单的细胞:只有两个TextView.当用户点击该按钮时ActionBar,会Dialog打开.他可以在这里制作一个新的细胞.我使用此代码更新我的GridView:

mNotesAdapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)

而且效果很好.但新电池立即弹出.而另一个只是改变了他们的立场.我想实现动画效果,它看起来像Google Keep效果.

> 在Google Play商店中查看Google Keep.

我的问题

可能吗?请分享一些链接或一些知识.

我非常感谢你的帮助.亚历克斯.PS抱歉我的英文:)

animation android android-animation android-gridview

7
推荐指数
0
解决办法
4271
查看次数

如何在为PinterestLikeAdapterView调用notifyDataSetChanged()时避免刷新单元格?

背景

我正在使用PinterestLikeAdapterView库来显示来自互联网的一些图像,这类似于gridView但每个单元格的高度不同.

问题

由于我使用此库来显示来自互联网的图像,因此调用notifyDatasetChanged时不会导致视图混乱至关重要.

出于某种原因,调用此函数会调用具有不同位置的getView()方法.例如,即使我根本没有滚动,并调用notifyDatasetChanged(或者addAll,以防它是ArrayAdapter),对于位置0,它将采取位置8的视图,对于位置1,它将采取位置视图7,依此类推......

这使整个网格刷新其图像,因此它破坏了UX.

通常,在gridView和listView中,克服刷新的方法是将用于视图的位置放在viewHolder中,如果它们相等,则表示它们仍然匹配.

例如:

... getView(...)
  {
  //<=inflate a new view if needed 
  //avoid refreshing view in case it's still the same position:
  if(position==holder.position)
    return rootView;
  holder.position=position;
  //<=update the view according to its data
  ...
  }
Run Code Online (Sandbox Code Playgroud)

但是,这里他们以不同的顺序重用其他视图,所以这个技巧在这里不起作用.

由于这个问题,我不仅刷新了几乎所有可见的视图,而且因为我使用DiskCacheLru库,它崩溃了,因为它试图使用2个线程将2个相同的inputSteam数据放入同一个键中.

这个问题

我能做什么?这是库中的已知错误吗?

也许我用一种糟糕的方法来克服刷新?

现在,我使用内存缓存至少获得之前缓存的项目,但这更像是一种"治疗"而不是"疫苗"......

android android-gridview pinterest notifydatasetchanged

7
推荐指数
1
解决办法
3527
查看次数

如何使用Android GridView设置相等的间距?

如何设置剩余的空间被平分?

例如,我有一个包含2列的GridView.全宽为700px,列为200px:如何指定xml,左边的空间(300px)被均分为3个?

即100px | 200px(第1列)| 100px | 200px(第2列)| 100px的

android android-layout android-gridview

7
推荐指数
1
解决办法
7448
查看次数

无需重新填充即可更新GridView/ListView

无论何时更新GridView/ListView,都要调用notifyDatasetChanged适配器,该适配器使用新数据重新填充列表,删除当前列表中的所有内容.

现在以设计指南中的这个小视频为例L Preview

是否有可能实现同样的效果,你看到的唯一变化是当适配器重新加载时没有任何"闪烁"的新项目,或者这是现在只能在L中完成的事情?

Google Keep添加新笔记时,也可以在应用程序中找到此效果

android android-listview android-adapter android-gridview

7
推荐指数
1
解决办法
1954
查看次数

添加Gridview以使其崩溃

我正在按照教程并尝试在我的片段中构建网格视图,每次启动应用程序时它都会崩溃.我打开了LogCat并且它什么也没给我......有人可以帮我找出我能做些什么来让它正确显示而不是崩溃的应用程序?谢谢!!!

下面我已经包含了我的主要活动,GridView适配器和片段......

主要活动

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;


   import android.view.ViewGroup;


public class MainActivity extends ActionBarActivity
        implements NavigationDrawerFragment.NavigationDrawerCallbacks {

    /**
     * Fragment managing the behaviors, interactions and presentation of the navigation drawer.
     */
    private NavigationDrawerFragment mNavigationDrawerFragment;

    /**
     * Used to store the last screen title. For use in {@link #restoreActionBar()}.
     */
    private Char

Sequence mTitle;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mNavigationDrawerFragment …
Run Code Online (Sandbox Code Playgroud)

android-gridview android-fragments android-activity

7
推荐指数
1
解决办法
643
查看次数