Как установить Gravity в Xamarin для Android программно - PullRequest
0 голосов
/ 19 сентября 2018

Я хочу разместить линейный макет в центре. Если я даю отступ, макет движется, но если я устанавливаю гравитацию в качестве центра, его нет. Могу ли я знать, почему это происходит и как реализовать гравитацию.

Я приложил код, который использовал.

LinearLayout outerView = new LinearLayout(context);
outerView.LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent);
outerView.Orientation = Android.Widget.Orientation.Vertical;
//outerView.setGravity(GravityFlags.Center);
outerView.SetPadding(70,10,10,10);

1 Ответ

0 голосов
/ 19 сентября 2018

Во-первых, вы должны изменить FillParent на WrapContent, чтобы ваш контейнер не занимал все доступное пространство (если это так, нет смысла устанавливать layout_gravity).

Во-вторых, вызывая метод setGravity, вы меняете способ позиционирования дочерних элементов данного представления.Если вы хотите изменить расположение externalView относительно своего родителя, вам следует изменить его layout_gravity.Для этого просто укажите гравитацию при создании LayoutParams для вашего externalView:

outerView.LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent)
{
    Gravity = GravityFlags.Center
}

Посмотрите документацию этого класса: https://developer.xamarin.com/api/type/Android.Widget.LinearLayout+LayoutParams/

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