如何在Android應用程序中將ProgressBar
添加到GridView
的每個項目?我需要在GridView
元素的右上角有進度條。每個GridView元素的進度條
1
A
回答
1
您需要創建一個自定義適配器,以擴大包含ProgressBar的視圖。然後在運行期間,您需要更新ProgressBar的進度。這裏有一些非常基本的例子可以幫助你入門。
row_grid_view
只是一個包含進度條的佈局。你將不得不使用可用的佈局來查看哪些符合你的需求。一個友好的警告:如果佈局是適配器的一部分,不要使用RelativeLayout。如果你不知道你在做什麼,它們可能會非常昂貴:)
ProgressBarAdapter
是一個適配器,它顯示了一個ProgressItem
s的列表。這些項目僅包含自己的進度,以便可用於更新每個ProgressBar的進度。
row_grid_view.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ProgressBar
android:id="@+id/progress"
android:layout_width="wrap_content"
android:max="100"
android:layout_height="wrap_content"
style="@style/Widget.AppCompat.ProgressBar.Horizontal" />
</FrameLayout>
ProgressBarAdapter
public class ProgressShowingAdapter extends BaseAdapter {
private ArrayList<ProgressItem> mData;
private LayoutInflater mInflater;
public ProgressShowingAdapter(Context context) {
this.mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return mData.size();
}
@Override
public ProgressItem getItem(int position) {
return mData.get(position);
}
@Override
public long getItemId(int position) {
// if your items have any unique ids, return that instead
return position;
}
public void setData(List<ProgressItem> newData) {
this.mData.clear();
if (newData != null && !newData.isEmpty()) {
mData.addAll(newData);
}
}
private static class ViewHolder {
private ProgressBar mProgress;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// view holder pattern
ViewHolder vh = null;
if (convertView == null) {
vh = new ViewHolder();
convertView = mInflater.inflate(R.layout.row_grid_view, parent, false);
vh.mProgress = (ProgressBar) convertView.findViewById(R.id.progress);
convertView.setTag(vh);
} else {
vh = (ViewHolder) convertView.getTag();
}
ProgressItem mItem = getItem(position);
vh.mProgress.setProgress(mItem.getProgress());
// do the remaining of the stuff here
return convertView;
}
}
ProgressItem
public class ProgressItem {
private int mProgress;
public ProgressItem(int mProgress) {
this.mProgress = mProgress;
}
public int getProgress() {
return mProgress;
}
}
0
喲可以使用本教程 http://www.tutorialspoint.com/android/android_grid_view.htm 我認爲這會爲你工作
相關問題
- 1. 進度條爲每個進程
- 2. 需要每個元素的寬度等於元素的值
- 3. 爲元素數組中的每個元素賦值每個元素jQuery
- 4. 通過base px * n第n個元素縮進每個第n個元素
- 5. 每個Json元素的Python
- 6. 帶角度的條紋元素2
- 7. 加載每個進度條從0到它的值在多個進度條動畫
- 8. 重複gridview元素.....!
- 9. 如何將數組中的每個元素與List中的每個元素進行比較?
- 10. 在所有元素上顯示全屏不確定進度條
- 11. Android:用圓形進度條佈局浮動元素順序
- 12. 基於每個元素的頻率對數組元素進行排序
- 13. 將列表中的每個元素與所有其他元素進行比較
- 14. 進度條下面的菜單每一個環節
- 15. GridView元素上的OnTouchListener
- 16. GridView的元素排列
- 17. GridView中的中心元素
- 18. 如何將每個動畫與角度中的每個元素分開?
- 19. JQuery獲取每個以前的元素的高度
- 20. 如何用每個元素的attr href替換? // URL條
- 21. ASP.NET中繼器模板,每N個元素的條件代碼
- 22. 的Android GridView控件WRAP_CONTENT單元格的寬度和每
- 23. 進度條未顯示進度條
- 24. 通過每個元素C#
- 25. 。每個.children()元素延遲
- 26. 追加每個元素
- 27. 循環每個x元素
- 28. 如何在每個元素
- 29. jQuery爲每個元素
- 30. 行每隔3個元素
使用自定義gridItems製作GridView。就如此容易。請參閱[示例](http://www.technotalkative.com/android-gridview-example/)瞭解如何製作自定義GridView。只需用ProgressBar替換ImageView並將其放在任何你想要的地方。 :) – 2015-03-03 12:29:54
好的,我會在晚上檢查出來:)如果我有任何問題,我會問在這裏,謝謝你! – dammarpol 2015-03-03 12:32:58
亮點類 – tomrozb 2015-03-06 10:41:05