Search code examples
androidandroid-popupwindowandroid-layoutparams

mText1.getLayoutParams().height = NEW VALUE does not take effect in popup window


In Android application,
I create a LinearLayout which contains a TableLayout which contains some rows and one of the rows contains a TextView called mText1

I set up a pop up window with this LinearLayout with mText1 setting as following :
mText1.getLayoutParams().height = OLD VALUE

Then when in the pop up window in one other row of the table a click on an ImageView happens by the user, I'd like to change the height of mText1 as following :
mText1.getLayoutParams().height = NEW VALUE

The problem is this will not take effect but when I type the following code, it takes effect:
mText1.setGravity(Gravity.CENTER)

Or if I type the following code instead of the previous one, it takes effect too:
mText1.setText("some value")

Why?


Solution

  • You need to call requestLayout() after changing the LayoutParams.

    requestLayout()

    Call this when something has changed which has invalidated the layout of this view. This will schedule a layout pass of the view tree.

    setGravity and setText are handling this for you.