我有一个ListView
我想View
在某个位置为自定义充气的地方。它实际上是第 11 项(位置 10)。
该getCount()
方法返回 11。
这是该getView()
方法的顶部:
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
if (position < 10) {
convertView = mInflater.inflate(R.layout.standard, null);
} else {
convertView = mInflater.inflate(R.layout.custom, null);
Log.i(TAG, "Inflated custom layout");
}
Log.i(TAG, "getView, position = "+position);
holder = new ViewHolder();
holder.tv = (TextView) convertView.findViewById(R.id.tv);
holder.radioButton = (RadioButton) convertView.findViewById(R.id.radioButton1);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
...
Log.i(TAG, "getView() : position = " + position);
}
这是我在 logcat 中看到的:
getView, position = 0
getView, position = 1
getView, position = 2
其余的 getView 日志不显示;我会假设这条线会一直出现到getView, position = 10
.
而这一行:convertView = mInflater.inflate(R.layout.custom, null);
永远不会被调用,因为Inflated custom layout
不会出现在 logcat 中。
不过这很有趣,因为底部的 logcat 总是被调用(当我向下滚动时ListView
):
getView() : position = 0
getView() : position = 1
getView() : position = 2
getView() : position = 3
getView() : position = 4
getView() : position = 5
getView() : position = 6
getView() : position = 7
getView() : position = 8
getView() : position = 9
getView() : position = 10
为什么我的自定义布局没有膨胀?