Где я должен применить программные изменения макета при инициализации Android Activity? - PullRequest
0 голосов
/ 28 октября 2011

Я пишу Android Activity, в которой мне нужно внести некоторые программные изменения в макет при инициализации.

В упражнении используется стандартный вызов onCreate, который устанавливает представление контента из ресурса XML через setContentView(R.layout.main).Это отлично работает.Однако мне нужно изменить положение некоторых объектов в моем коде.

Когда я попытался вызвать object.layout из onCreate и onResume, изменения макета, кажется, никогда не применяются.

Isгде-нибудь еще я должен был это делать?

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.main);
    LinearLayout rl = (LinearLayout) findViewById(R.id.navPanel);
    Rect myrect = new Rect();
    rl.getLocalVisibleRect(myrect);
    rl.layout(myrect.left,-120,myrect.right,(myrect.bottom-myrect.top)-120);

1 Ответ

1 голос
/ 28 октября 2011

Вы не должны звонить layout() самостоятельно.Android справляется с этим.Вам нужно делать другие вещи, чтобы повлиять на изменение макета, обычно настраивая LayoutParams для виджета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...