I want to get all children of a RelativeLayout
. I get this using the code:
aditionView.getAllChildren().
But now the subviews are coming in the order in which it is added into that view. But i want them in the increasing order of position in which it is placed in the view.
You could sort children by View.getLeft()
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
logCoordinates();
}
private void logCoordinates() {
RelativeLayout layout = (RelativeLayout)findViewById(R.id.layout);
for (int i = 0; i < layout.getChildCount(); i++) {
View child = layout.getChildAt(i);
Log.i("tag", String.format("%d %d %d %d", child.getLeft(), child.getTop(), child.getRight(), child.getBottom()));
}
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
logCoordinates();
}
Please, compare log output of logCoordinates()
called from onCreate()
and from onWindowFocusChanged()
. View coordinates are not available within onCreate()
(why?).
See discussion here How to get height and width of Button
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With