我有一个列表视图,其中我正在加载10个项目。如何使列表视图只显示3个项目
我只需要滚动显示3个项目。
我不想通过调整列表高度来做到这一点,即使我滚动很少(意味着没有项目应该部分显示),我也只想显示3个项目。
如何实现这个...?
在此先感谢..!
我有一个列表视图,其中我正在加载10个项目。如何使列表视图只显示3个项目
我只需要滚动显示3个项目。
我不想通过调整列表高度来做到这一点,即使我滚动很少(意味着没有项目应该部分显示),我也只想显示3个项目。
如何实现这个...?
在此先感谢..!
我会发布一个代码,我曾用它在滚动事件中填充10条记录。
/**
* Called when the activity is first created.
*
* @param savedInstanceState
* the saved instance state
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_checkin_checkout_history);
Thread thread = new Thread() {
public void run() {
synchronized (this) {
fetchHistory(0);
handler.post(new Runnable() {
public void run() {
pd.dismiss();
displayUI();
};
});
}
}
};
thread.start();
}
/**
* Display the check in check out history list.
*/
private void displayUI() {
if ((checkInCheckOutHistoryList != null)
&& (checkInCheckOutHistoryList.size() > 0)) {
historyArrayList = new ArrayList<HashMap<String, String>>();
histroyListAdapter = new SimpleAdapter(
ViewCheckInCheckOutHistory.this, historyArrayList,
R.layout.multi_colummn_list_text_style_small, new String[] {
"assetTag", "gif" , "action", "actionTime"},
new int[] { R.id.list_content_column1,
R.id.list_content_imagecolumn,
R.id.list_content_column3,
R.id.list_content_column4});
// To add more items to list view on scroll event.
historyListView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view,
int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
int lastInScreen = firstVisibleItem + visibleItemCount;
if ((lastInScreen == totalItemCount) && !(loadingMore) && (lastInScreen < totalHistoryItemCount)) {
if (!firstInstance) {
openSlider();
}
fetchHistory(lastInScreen);
Thread thread = new Thread(null, loadMoreListItems);
thread.start();
}
}
});
}
}
// Runnable to load the items
private Runnable loadMoreListItems = new Runnable() {
@Override
synchronized public void run() {
// Set flag so we cant load new items 2 at the same time
loadingMore = true;
HashMap<String, String> historyObjectMap;
for (CheckInCheckOutHistory checkOutHistoryObj : checkInCheckOutHistoryList) {
historyObjectMap = new HashMap<String, String>();
historyObjectMap.put("assetTag",
checkOutHistoryObj.getAssetTag());
historyObjectMap.put("action", checkOutHistoryObj.getAction());
historyObjectMap.put("actionTime",
checkOutHistoryObj.getActionDate());
if (checkOutHistoryObj.getAction().equals("Checked out")) {
historyObjectMap.put("gif", R.drawable.radio_button_yellow
+ "");
} else {
historyObjectMap.put("gif", R.drawable.radio_button_green
+ "");
}
historyArrayList.add(historyObjectMap);
}
runOnUiThread(returnRes);
}
};
// Since we cant update our UI from a thread this Runnable takes care of
// that!
private Runnable returnRes = new Runnable() {
@Override
public void run() {
// Add the new items to the adapter
if (historyArrayList != null && historyArrayList.size() > 0) {
histroyListAdapter.notifyDataSetChanged();
}
if (firstInstance) {
historyListView.setAdapter(histroyListAdapter);
firstInstance = false;
}
historyListLayout.setVisibility(View.VISIBLE);
// Done loading more.
loadingMore = false;
if ((slidingDrawer.isOpened()) && (!loadingMore)) {
handler.postDelayed(new Runnable() {
@Override
public void run() {
slidingDrawer.close();
slidingDrawer.setVisibility(View.GONE);
}
}, 1000);
}
}
};
fetchHistory(int count)
是我用于为totalHistoryItemCount
checkInCheckOutHistoryList
&设置的值的方法。
希望这会有所帮助。
除了这3个项目使所有其他项目在滚动时不可见。在再次滚动后可见。
http://developer.android.com/reference/android/view/View.html#GONE获取更多信息。 – Pedantic
检查此:http://stackoverflow.com/questions/6573489/android-endless-scrolling-listview-and-cursor/6759834#6759834希望这会解决您的问题。 – Ian
@ Amy88将此评论作为答复...! – Noby
当我尝试添加这个答案时,它会自动转换为注释,显示**“将简单答案转换为注释”**。 Anway感谢Noby。很高兴知道我可以帮助你。 – Ian