我目前有一个GridView设置,使用单元格的getX()和getY()点击添加TextView。当我试图将其从OnClickListener移开时,为cellView的getX()和getY()值返回的值始终为0.0,而不是OnclickListener中的OnClick接口中给出的值。如何在侦听器外部的onClickListener中获取getX()?
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View cellView;
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
cellView = inflater.inflate(R.layout.cell_calendar, parent, false);
TextView textView = (TextView) cellView.findViewById(R.id.calendar_date);
textView.setText("" + dateArrayList.get(position).getDate());
System.out.println(cellView.getX() + " / " + cellView.getY()); //Returns 0
cellView.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
float buffer = bar1.getY();
System.out.println(cellView.getX() + " / " + cellView.getY()); //Returns actual Location
addText(cellView.getX() + 15, cellView.getY() + buffer, "Test String");
}
});
public void addText(float x, float y, String textName) {
TextView mTextView = new TextView(context);
mTextView.setTextColor(Color.parseColor("#000000"));
mTextView.setText(textName);
mTextView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
mTextView.setX(x);
mTextView.setY(y);
mTextView.setTextSize(mTextView.getTextSize() * .15f);
mContainer.addView(mTextView);
}
答案 0 :(得分:0)
我的避风港' t一起使用GridView控件之前,所以原谅我,如果我'错了,但你可以尝试使用setOnItemClickListener代替setOnClickListener
答案 1 :(得分:0)
我使用ViewTreeObserver修复了此问题。 Android在创建时将每个视图都设置为0,但ViewTreeObserver将允许您在绘制和对齐视图后获取位置。