Я использовал небольшой хак, чтобы растянуть представление внутри родителя RelativeLayout
так, чтобы оно начиналось сверху -слева и заканчивалось внизу -по центру. Хотя RelativeLayout
позволяет вам расположить что-то в центре самого себя, тем не менее, кажется, что он не позволяет вам растянуть что-то до той же точки.
Мое решение было простым: поместите что-то в этот центр и задайте размер в 1 пиксель, чтобы он был фактическим центром родителя RelativeLayout
. Не поймите меня неправильно, это работает, и у меня не было никаких проблем с этим, но если есть лучшая практика, я хотел бы знать об этом.
Что касается графического представления того, о чем я говорю, позвольте мне добавить несколько иллюстрирующих изображений.
Это первое изображение имеет текст -меньше TextView
, расположенный в центре RelativeLayout
, и я дал ему ширину 0dp. Это позволяет мне, как вы можете видеть на следующем изображении, размещать что угодно относительно этого центра. Я хочу сказать, что мне кажется странным, что вы не можете сделать это без необходимости добавления дополнительного вида в центре, потому что я могу видеть такие свойства, как Layout to left of
или Layout to right of
, но нетLayout to center of
.
Таким образом, сценарий может быть немного больше в строках «он еще не сломан , но я боюсь, что он лопнет в любую минуту ». С другой стороны, если это правильный способ сделать это, и я помогаю кому-то изучать что-то новое, это также работает для меня.
Почему я задаю вопросы, на которые нет ответов!? Я так устанавливаю награду здесь..
Самая разумная вещь, предложенная (на мой взгляд ), заключается в том, что я заменю свой LinearLayout
на View
, который, как я полагаю, занимает немного меньше памяти, даже если это незначительно меньше. Так что я благодарю @yorkw за это. Я удивлен, что никто не спросил об этом раньше.
Просто чтобы уточнить, так как, кажется, есть недопонимание относительно того, что я на самом деле ищу. Я не хочу, чтобы что-то занимало половину родительской ширины/высоты. Я просил способ использовать его в качестве точки отсчета (, это то, что я сказал в заголовке ), чтобы я мог делать такие вещи, как позиционировать изображение слева от центра, не добавляя линейный макет, который занимает половину и гравитация слева или что-то еще.
Начиная с API 14 у нас естьSpace
доступный, который является облегченным View
подклассом, который может быть более подходящим для такого рода взлома.