Check if view element is added to layout or not programmatically

44,162

Solution 1

I think you can simply use

findViewById(your_view_id) 

method: If its result is null the view does not exists, otherwise the view is present

Solution 2

If you creating view via inflater, you can check his parent

if(view.getParent() != null) {...}

Solution 3

Sorry for late reply but you may try this alternative:

use container.getChildCount(); before adding and after adding a view. Like :

int x = container.getChildCount();

container.addView(child, params);

int y = container.getChildCount();

if(y > x)
   Toast.makeText(context, "View Successfully Added!", Toas.LENGTH_SHORT).show();

Solution 4

Or if you have a view instance to find, you could:

if (container.indexOfChild(childView) == -1) {
  // Add child to container.
}

Solution 5

I cannot write a comment so I write it here as a solution: From API level 19 you can call isAttachedToWindow() which doesn't help a lot, but if you are aiming API 19 or higher, then this should work by the documentation.

Share:
44,162
Mellon
Author by

Mellon

Software Engineer

Updated on March 27, 2020

Comments

  • Mellon
    Mellon over 4 years

    In my fragment class, I add a child view element programmatically to my layout conditionally :

    LinearLayout child = (LinearLayout) inflater.inflate(R.layout.child_view, null);
    
    LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,100);
    
    container.addView(child, params);
    

    Since the above code will be run conditionally, so, at some point, I would like to check if the child view has added or not, how to make this checking programmatically?