如何根據位置更改持有者內部視圖的屬性? 此問題僅在使用具有數據持有者類的回收 時纔會出現。我可以根據位置爲每個不同的文本視圖設置不同的標題,但我無法根據位置更改每個文本視圖的文本大小。如何在自定義列表視圖中保留視圖的特定屬性
當然與recycleView = false它工作得很好,因爲意見不會被回收,但如何使它與回收商合作?
boolean recycleView = false;
ArrayList<SocialItem> list;
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null || !recycleView) {
LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.social_list_item, null);
holder = new ViewHolder();
holder.title1 = (TextView) convertView.findViewById(R.id.si_title1);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.title1.setText(list.get(position).getTitle1());
//changes textsize of textview to fit in specific width, and saves in our holder list, and sets from it in textview
list.get(position).setTxtSize1(Util.correctTVWidth(holder.title1, 110));
holder.title1.setTextSize(TypedValue.COMPLEX_UNIT_PX, list.get(position).getTxtSize1());
return convertView;
}
的翠鳥福作品的解決方案,但爲什麼下面的代碼將無法正常工作? 我認爲它所做的是,它將計算的文本大小保存在一個基於位置的簡單pojo持有者中,並且從它的視圖中設置文本大小,它不應該工作嗎?
//changes textsize of textview to fit in specific width, and saves in our holder list, and sets from it in textview
list.get(position).setTxtSize1(Util.correctTVWidth(holder.title1, 110));
holder.title1.setTextSize(TypedValue.COMPLEX_UNIT_PX, list.get(position).getTxtSize1());
你的函數Util.correctTVWidth(holder.title1,110)'做了什麼? –
返回調整的文本大小,以適應文本視圖,如果文本很長 – winchester