我正在做一個項目,我是一個使用自定義列表視圖,其中包含一個textview。數據來自服務器。我想根據數據大小更改單元格的高度。如果內容超過兩行,我必須將其修剪爲兩行,並顯示查看更多按鈕。點擊查看更多按鈕展開單元格以顯示完整的詳細信息。我使用Google搜索了一下。但我找不到任何有用的資源。任何人都可以幫助我解決這個問題,任何有用的鏈接或建議?'根據內容大小動態增加Android列表視圖中單元格的大小?
2
A
回答
0
一種方法是首先使listView失效,迫使它重繪可見元素,然後處理您的適配器的getView方法中的佈局更改。
試試這個:
添加一個showTrimmed(int位置,布爾值)方法到您的適配器。這將更新適配器內部的結構,以跟蹤要修剪或不修剪的列表項。然後,在getView方法中,創建項目視圖時,測試是否應修剪當前元素,並根據創建適當視圖的結果進行測試。 我做了類似的工作,實現了不同但相似的結果,並且工作正常。 記得在調用showTrimmed之後調用invalidate來強制listView重繪顯示的項目。
編輯:我後我的代碼是你想要做什麼不同,但它在思想頗爲相似:
public class HeroListViewAdapter extends ArrayAdapter<Hero> {
public static int NO_POS = -1;
private List<Hero> heroes;
private int selected_pos = NO_POS;
public HeroListViewAdapter(Context context, List<Hero> heroes){
super(context, R.layout.hero_list_item_view, heroes);
this.heroes = heroes;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View rowView = GuiBuilder.createHeroListItemView(heroes.get(position),getContext(),parent,false);
if(position == selected_pos){
rowView.setBackgroundColor((rowView.getResources().getColor(R.color.list_item_selected_color)));
}
return rowView;
}
public void setSelectedPosition(int selected_pos){
this.selected_pos = selected_pos;
}
public int getSelectedPosition(){
return selected_pos;
}
public Hero getSelectedHero(){
if(selected_pos>=0 && selected_pos<heroes.size())
return this.getItem(selected_pos);
else
return null;
}
}
,而不是setSelectedPosition你應該有showTrimmed方法,更新內部成員作爲setSelectedPos這樣做是爲了跟蹤每個列表項的修剪狀態。然後在getView方法中進行測試(就像我在if(position == selected_pos)中那樣),然後根據測試結果構建自定義修剪或未修剪的列表項。我使用這些功能的聽衆是:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
list_adapter.setSelectedPosition(position);
listView.invalidate();
}
}
);
您可以嘗試更新此想法以滿足您的需求。特別是在我的情況下,我這樣做的目的是通過編程改變它的背景來突出顯示點擊的listview項目。
相關問題
- 1. 根據圖像大小調整內容大小動態加載
- 2. 動態增加內容大小
- 3. 如何根據標籤內容調整表格視圖單元的大小
- 4. 根據Android中的屏幕大小動態添加視圖
- 5. 如何根據列表視圖的大小動態增加片段高度
- 6. ImageView根據android中的圖像大小動態調整大小
- 7. 增加/減少表格視圖單元的大小 - Swift
- 8. 根據內容大小自動調整單元格?
- 9. 根據子視圖的內容大小調整滾動視圖
- 10. 動態增加列表大小java
- 11. 如何根據其內容增加或減少Android文本視圖大小?
- 12. 如何製作表格視圖單元格大小動態?
- 13. Excel根據圖像大小調整單元格大小
- 14. 根據視圖大小變化更改視圖元素大小
- 15. 增加tableView的單元格的大小?
- 16. 如何使用html根據表格內容增加圖片大小?
- 17. 如何在一個表格中動態增加圖表大小
- 18. 增量大小表格內
- 19. 動態增加JTable大小
- 20. 如何根據內容大小自動調整NSTextView的大小?
- 21. 容器div高度不會根據內容增加大小
- 22. 根據數據庫字段自動增加excel文件的單元格大小
- 23. 動態列表視圖調整大小
- 24. 收集視圖單元格的內容大小不正確
- 25. 如何根據內容動態縮小WebView大小?
- 26. CSV根據內容調整列大小
- 27. CSS下拉菜單大小根據內容動態變化?
- 28. UItableView單元格內容大小爲iPad
- 29. 如何根據表格大小根據其內容
- 30. 如何根據文本大小動態增加Crystal報表中交叉表單元格的高度和寬度?
嗨,我沒有得到你完全...你可以粘貼相關的代碼,如果可能 –
我張貼我的代碼。看一看,看看你是否能夠將這個想法適應你的需求。 –