Я попытался переместить кнопку с помощью графического интерфейса и android:layout_alignParentLeft в файле XML, все равно это не работает. Моя версия Android Studio — 2.2.3. У вас когда-нибудь была эта проблема?
Я не могу переместить кнопку внутри макета фрейма
- пожалуйста, покажите свой xml-код .. 30.12.2016
Ответы:
Вам нужен RelativeLayout или другой аналогичный макет в качестве родительского контейнера, поскольку FrameLayout просто нарисуйте представления одно поверх другого, плюс вы должны проверить раздел свойств, чтобы увидеть attibute
свойства, которые можно применить к макету.
Чтобы узнать больше о ViewGroups и его подтипах с их поведением
Если вы вынуждены использовать FrameLayout (например, на панели инструментов или около того), и у вас есть только один элемент (или небольшое количество) для работы (кнопка), вы можете использовать атрибут android:layout_gravity=""
для выравнивания элемента в FrameLayout.
<FrameLayout
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="@string/app_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
</FrameLayout>
Если в вашем макете мало элементов, вы можете: 1) изменить FrameLayout на RelativeLayout или 2) обернуть все элементы в относительный макет и установить параметры на match_parent
<FrameLayout
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="@string/app_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"/>
</RelativeLayout>
</FrameLayout>