我在Android中的flipperview
动画中遇到问题,使用flipperview
横向视图动画,arraylist
尺寸为14,但getview仅在getview()
之后调用3次不打电话。
代码是:
@SuppressLint({ "NewApi", "SetJavaScriptEnabled" })
public class DetailsActivity extends Activity {
private FlipViewController flipView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
flipView = new FlipViewController(this, FlipViewController.HORIZONTAL);
flipView.setAdapter(new BaseAdapter() {
private WebView mWebview;
ProgressDialog progressDialog = null;
List<EventUtil> mEventUtil= GlobalValues.getInstance().eventUtils;
private int repeatCount = 1;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View layout = convertView;
LayoutInflater inflater= LayoutInflater.from(EventDetailsActivity.this);
if (convertView == null) {
layout = inflater.inflate(R.layout.pf_fragment_event_desc, null);
progressDialog = Constants.getInstance().loadingDialog(getParent());
EventUtil eventDescEntity = mEventUtil.get(position);
Log.d("ARRAYSIZE", mEventUtil.size()+"");
mWebview = (WebView)layout.findViewById(R.id.event_detail_web_view);
mWebview.getSettings().setJavaScriptEnabled(true);
getJsonObject(eventDescEntity.getEvent_id(),mWebview);
Log.d("POSISSION", position+"");
}
return layout;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public int getCount() {
return mEventUtil.size() * repeatCount;
}
});
setContentView(flipView);
}
@Override
protected void onResume() {
super.onResume();
flipView.onResume();
}
@Override
protected void onPause() {
super.onPause();
flipView.onPause();
}
}
它运行正常,问题是getView计数达到3后getView()方法没有调用
log
position 0
position 1
position 2
计数并没有增加我的预期。
答案 0 :(得分:0)
尝试
if (convertView == null) {
layout = inflater.inflate(R.layout.pf_fragment_event_desc, parent, false);
}
您的代码仅在convertView为空时放置信息
(注意:你在这里知道父项的内容是什么(ViewGroup父参数)所以你应该通过使用inflate(id,parent,false)告诉inflater;而不是inflate(id,null); - 你几乎不应该调用inflate(id,null))
详见;