改变网格视图中位置0的项目的布局。

问题描述 投票:0回答:2

我有一个 gridview 我正在给它充气 relativelayout. 就当是布局的一个例子吧。

0  1  2
3  4  5
......
......

我有一个 progress bar 并在布局中的位置0处使用 async task 适配器设置后。当然,对于gridview,我不能只访问0号位置的视图,然后显示hide progressbar 每当它再次被渲染的时候。我应该怎么做才能固定gridview的第一个子项目的布局,并且不让它在用户滚动项目时改变?

这是我的方法 getView():

public View getView(int position, View convertView, ViewGroup parent) {

        ViewHolder holder = null;
        if (convertView == null) {

            convertView = inflater.inflate(R.layout.gridview_tvguide, null);
            holder = new ViewHolder();
            holder.image = (ImageButton) convertView.findViewById(R.id.image);
            holder.showTitle = (TextView) convertView
                    .findViewById(R.id.ShowTitle);
            holder.showDuration = (TextView) convertView
                    .findViewById(R.id.ShowTime);
                    //by default visibility is set to GONE
            holder.progBar = (ProgressBar) convertView.findViewById(R.id.progressBar);
            convertView.setTag(holder);
        }
        else {
            holder = (ViewHolder) convertView.getTag();
        }

            //logic to control the progressbar from asynctask
        if (this.updateNowPlaying){
            holder.progBar.setProgress(this.progress);
            return convertView;
        }

        ImageLoader.getInstance().displayImage(
                this.shows.get(position).getShowThumb(), holder.image);
        holder.showTitle.setText(this.shows.get(position).getShowTitle());
        holder.showDuration.setText(this.shows.get(position).getShowTime());

        return convertView;
    }

编辑:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rlImage"
    android:layout_width="wrap_content"
    android:layout_height="200dp"
    android:paddingBottom="7dp"
    android:paddingRight="7dp" >

    <ImageButton
        android:id="@+id/image"
        android:layout_width="220dp"
        android:layout_height="220dp"
        android:adjustViewBounds="true"
        android:background="@null"
        android:scaleType="centerCrop"
        android:src="@drawable/noimage" />

    <ImageButton
        android:id="@+id/imageHover"
        android:layout_width="220dp"
        android:layout_height="220dp"
        android:adjustViewBounds="true"
        android:background="@null"
        android:scaleType="fitXY"
        android:src="@drawable/tile_selector_style" />

    <TextView
        android:id="@+id/ShowTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:hint="Show Title"
        android:paddingBottom="40dp"
        android:paddingRight="20dp"
        android:singleLine="true" />

    <TextView
        android:id="@+id/ShowTime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:hint="Show Time"
        android:paddingBottom="20dp"
        android:paddingRight="20dp"
        android:singleLine="true" />

    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:visibility="gone"
        android:layout_margin="0dp" />

</RelativeLayout>

这是我的 gridview:

<GridView
            android:id="@+id/gridView"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:clipToPadding="true"
            android:columnWidth="200dp"
            android:fitsSystemWindows="true"
            android:layout_weight="1"
            android:numColumns="auto_fit"
            android:stretchMode="columnWidth" >
        </GridView>
android android-layout android-gridview
2个回答
1
投票

显示进度条,只适用于 item 0 后面加上这段代码 if/else 初始化您的支架 :

if (position == 0) {
    holder.progBar.setVisibility(View.VISIBLE);
} else {
    holder.progBar.setVisibility(View.GONE);
}
© www.soinside.com 2019 - 2024. All rights reserved.