Можно ли использовать LinearLayout.LayoutParams на случай, если мне не понадобится расширенная функциональность? - PullRequest
0 голосов
/ 31 мая 2018

Я заметил, что некоторые представления Android поставляются с пользовательской версией LayoutParams, например, при добавлении ActionBar к LinearLayout я мог бы установить его размеры следующим образом:

android.support.v7.app.ActionBar.LayoutParams params = new android.support.v7.app.ActionBar.LayoutParams(android.support.v7.app.ActionBar.LayoutParams.MATCH_PARENT, actionBarSize);
actionBar.setLayoutParams(params);  

Но, как видите, это очень многословно.Поэтому я попытался использовать LinearLayout.LayoutParams вместо этого, что делает его намного короче и лучше читаемым, например так:

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, actionBarSize);
actionBar.setLayoutParams(params);

Я пробовал обе версии, и они, кажется, работают точно так же.

Это то, что заставляет меня задуматься, можно ли просто перейти с LinearLayout.LayoutParams на тот случай, если мне не понадобятся какие-либо расширенные функциональные возможности, предоставляемые пользовательскими версиями, такими как android.support.v7.app.ActionBar.LayoutParams?

, или же использовать LinearLayout.LayoutParams для ActionBar (и подобные случаи) имеют какие-либо потенциальные нежелательные побочные эффекты?

1 Ответ

0 голосов
/ 31 мая 2018

Оба LinearLayout.LayoutParams и ActionBar.LayoutParams наследуются от ViewGroup.LayoutParams.Таким образом, они оба ведут себя одинаково для атрибутов width и height.

Для справки: https://developer.android.com/reference/android/view/ViewGroup.LayoutParams

...