Обновить параметры макета для существующего объекта - PullRequest
0 голосов
/ 06 февраля 2020

Я использую setLayoutParams для установки параметров макета для объекта пользовательского представления, которое я сделал следующим образом:

MyCustomView object = new ObjectView(getApplicationContext());
                object.setLayoutParams(new ViewGroup.LayoutParams(
                        ViewGroup.LayoutParams.WRAP_CONTENT,
                        ViewGroup.LayoutParams.WRAP_CONTENT));

Как я могу программно изменить или обновить этот LayoutParams для того же объекта во время выполнения?

Ответы [ 2 ]

0 голосов
/ 06 февраля 2020
int yourHeight = 200;
int yourWidth = 200;

MyCustomView object = new ObjectView(getApplicationContext());
//this
object.setLayoutParams(new ViewGroup.LayoutParams(
                        yourHeight,
                        yourWidth));
//or this
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(
                        yourHeight,
                        yourWidth));
object.setLayoutParams(layoutParam);
0 голосов
/ 06 февраля 2020

Вы можете сбросить или изменить параметры динамически позже, как показано ниже:

MyCustomView object = new ObjectView(getApplicationContext());
object.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));



public void manageViewParams(int width, int height)
{
   ViewGroup.LayoutParams layoutParam = object.getLayoutParams();
   layoutParam.width = width;
   layoutParam.height = height;

   //first check without this below line, it should work. If not then you need to write below line
   object.setLayoutParams(layoutParam);
}
...