NotACleverMan NotACleverMan - 3 months ago 10
Android Question

Having a problem removing TextViews from a LinearLayout programmatically

I am programmatically adding TextViews to a LinearLayout, and deleting them on touch. It all works fine except when the last TextView is touched it doesn't get removed. If I do anything else on the screen like get rid of the keyboard or scroll down at all, the last TextView will be deleted, which makes me think it's a refresh problem, but I have no idea how to solve that.

Here's some of the code I'm using:

final TextView tv1 = new TextView(this);
tv1.setText("Test");

tv1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

linearlayout1.removeView(tv1);

}
});


I have also added this code in to try to solve the problem but it didn't change anything:

if (linearlayout1.getChildCount() == 1) {
linearlayout1.removeAllViewsInLayout();
}

Answer

This sounds more of a bug in Android, but one thing you could try is hiding your TextView before removal:

tv1.setVisibility(View.GONE)

Or alternatively you could add:

linearlayout1.invalidate()

after removal of the last item to trigger redrawing.

Comments