【发布时间】:2021-04-10 12:16:56
【问题描述】:
你好开发人员我正在制作一个动态视图,我在其中添加了一个文本视图和一个图像视图,并在单击图像视图时应该删除布局。但问题是,当我单击布局的子级时,需要单击两次才能删除。
任何帮助将不胜感激。
布局代码是:
LinearLayout a = new LinearLayout(mContext);
a.setOrientation(LinearLayout.HORIZONTAL);
TextView itemNameTV = new TextView(mContext);
itemNameTV.setLayoutParams(lparams);
itemNameTV.setText(myInventoryItemRs.getQuantity());
ImageView delete = new ImageView(mContext);
itemNameTV.setLayoutParams(lparams);
delete.setImageDrawable(ResourcesCompat.getDrawable(mContext.getResources(), R.drawable.ic_close, null));
holder.item_quantity_editText.setText("");
myInventoryItemRs.setQuantity("");
a.addView(itemNameTV);
a.addView(delete);
holder.add_more_items.addView(a);
点击更多项目的监听器
moreItems.setOnClickListener(v -> {
try {
// On first click this is called.
Toast.makeText(mContext, "Layout outer", Toast.LENGTH_SHORT).show();
int count = moreItems.getChildCount();
Log.e(TAG, "onClick: " + count);
View nv;
for (int i = 0; i < count; i++) {
try {
nv = moreItems.getChildAt(i);
ImageView delete = (ImageView) ((LinearLayout) nv).getChildAt(1);
View finalNv1 = nv;
delete.setOnClickListener(v1 -> {
// On Second click this is called.
Toast.makeText(mContext, "Layout inner", Toast.LENGTH_SHORT).show();
moreItems.removeView(finalNv1);
});
TextView tnv = (TextView) ((LinearLayout) nv).getChildAt(0);
} catch (Exception e) {
Log.e(TAG, "onClick: " + e);
}
}
} catch (Exception e) {
Log.e(TAG, "onClick: " + e);
}
});
【问题讨论】:
标签: android android-layout android-recyclerview android-linearlayout