0
我有一個微調。我已經重寫了自定義下拉getview。
我在機器人2.2由arrayadapter微調行爲「怪異」
問題工作的是,所選擇的值得到由「默認」(空字段)重新打開該選擇器時插入的值替代:圖像在下面解釋,並且它們下面的重寫代碼:
現在按微調:
現在迫切搶劫,然後按下s平納再次
下拉重寫方法:
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) {
View v;
ViewHolder holder;
if (convertView == null) {
v = View.inflate(ctx, R.layout.fav_spinner_item, null);
holder = new ViewHolder();
holder.indentationField = (ImageView) v
.findViewById(R.id.indent);
holder.nameField = (TextView) v.findViewById(R.id.name);
holder.levelCount = mList.get(position).getTier() != -1 ? mList
.get(position).getTier() : 0;
holder.nameField.setText(mList.get(position).getDisplayName());
if (holder.levelCount == 0) {
holder.indentationField.setVisibility(View.GONE);
} else {
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) holder.indentationField.getLayoutParams();
params.setMargins(params.leftMargin+((params.leftMargin+15)*holder.levelCount), params.topMargin, params.rightMargin, params.bottomMargin);
holder.indentationField.setLayoutParams(params);
}
v.setTag(holder);
} else {
v = convertView;
holder = (ViewHolder) convertView.getTag();
}
return v;
}
感謝clearification一個
View
,雖然它仍然現在不是「robs」,而是其他的 – 2013-05-14 10:52:30我剛剛注意到,你從'indentationField'獲得'LayoutParams',修改它們,然後再次設置它們。這也不會正確工作,因爲你可能沒有得到原始的'LayoutParams',你可能會得到一個已經修改過的版本。你需要看看你是如何做到這一切。 – 2013-05-14 17:14:40
好吧,所以我沒有viewholder模式:) – 2013-05-16 07:22:20