으로 부풀려진 gridview
이 있습니다. 레이아웃의 예로서 이것을 고려 :gridview의 0 위치에있는 항목의 레이아웃이 변경되었습니다.
0 1 2
3 4 5
......
......
나는 위치 0에서 레이아웃에만 적용 그리고 어댑터가 설정 한 후 async task
를 사용하여 업데이트 할 것을 레이아웃에 progress bar
있습니다. 물론 gridview를 사용하면 위치 0의 뷰에 액세스 할 수없고 다시 렌더링 될 때마다 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
입니다 : item 0
이 추가에만
<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>
레이아웃을 방해하지 않으면 어떻게합니까? 나는'layout inflator' 코드를 추가하고 있습니다. – faizanjehangir
@MikeM. 나는 가능한 해결책을 시도했다. 그것은 잘 작동하지만, 이제는이 항목이'gridview'의 일부가 아닙니다. Thats는 '스크롤링'을 의미하지 않습니다. – faizanjehangir
'gridview'의 위치 0을'progressbar'가 들어있는 레이아웃으로하고 싶습니다. 'gridview' 항목의 REST는 아무리 스크롤해도 '진행 표시 줄'이 없어야합니다 ... – faizanjehangir