2015-12-14 5 views
0

Мне нужно начинать с разработки приложений для Android. Я использую Android Studio и работаю над учебником. Я держу два элемента лежащими друг над другом, тогда как один должен быть ниже первого элемента. Вероятно, это очень неудачная ошибка, но, эй, я ноб, и я не знаю, что это такое. :) Код следующим образом:LinearLayouts друг на друга

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true" 
android:orientation="horizontal" 
tools:context="org.kehrli.testapp.MyActivity"> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="60dp" 
    android:theme="@style/AppTheme.AppBarOverlay"> 
    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimaryDark" 
     /> 
</LinearLayout> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 

    <EditText android:id="@+id/edit_message" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:hint="@string/enter_message" /> 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/button_send"/> 
</LinearLayout> 

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|end" 
    android:layout_margin="@dimen/fab_margin" 
    android:background="?attr/colorPrimary" 
    android:src="@android:drawable/ic_dialog_email" /> 

Может кто-нибудь увидеть, где я пошло не так?

ответ

0

Ваша линейная ориентация ориентации установлена ​​на horizontal, сделайте ее vertical, и вы должны видеть их один под другим.

Изменение android:orientation="horizontal" в android:orientation="vertical"

1

Всякий раз, когда есть LinearLayout, необходимо указать android:orientation, что говорит, должны ли дочерние элементы стека horizontal или vertical.

Поскольку вы хотите складывать вертикально, обновите значение android:orientation до vertical.

0

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

<android.support.design.widget.AppBarLayout 
    android:id="@+id/appbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:layout_scrollFlags="scroll|enterAlways" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 

</android.support.design.widget.AppBarLayout> 

Вы должны оформить в AppBarLayout для получения дополнительной информации о флагах прокрутки и т.д.

Кроме того, вторая линейная компоновка может потребоваться поведение макета, так что находится ниже панели приложения. Поэтому, если вы увидите, что вам может понадобиться добавить этот атрибут:

app:layout_behavior="@string/appbar_scrolling_view_behavior" 
Смежные вопросы