2013-06-25 4 views
2

Я пытаюсь создать макет в android, когда создаю линейный макет внутри линейного макета, добавляя его, но не видя в интерфейсе. вот мой кодЛинейная компоновка внутри макета Lineary в android

<?xml version="1.0" encoding="utf-8"?> 
<!-- Parent linear layout with vertical orientation --> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:baselineAligned="_baseline" 
    android:orientation="horizontal" > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="5dip" 
     android:text="@string/name" /> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="top" 
     android:layout_marginTop="0dp" 
     android:ems="10" > 

    <requestFocus /> 
    </EditText> 

    <Button 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="290dp" 
     android:text="@string/submit" /> 

    <!-- Child linear layout with horizontal orientation --> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="#2a2a2a" 
     android:baselineAligned="_baseline" 
     android:orientation="horizontal" > 

    <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:text="Previous" android:padding="15dip" android:layout_weight="1" 
     android:gravity="center"/> 

    <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:text="Next" android:padding="15dip" android:layout_weight="1" 
     android:gravity="center"/> 

    </LinearLayout> 

</LinearLayout> 
+0

Там нет места для него, ваш 'EditText' и' Button' являются 'match_parent' так толкая все из. –

+1

андроид: ориентация = «горизонтальная», у вашего родительского макета есть это свойство. измените его на вертикальный –

+0

Спасибо за ответ Ken, я сделал это изменение, но все же его не видно. – Sajeetharan

ответ

2

Попробуйте это, я думаю, что вы хотите, этот тип интерфейса.

<?xml version="1.0" encoding="utf-8"?> 

<!-- Parent linear layout with vertical orientation --> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 

    <TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:padding="5dip" 
    android:text="@string/app_name" /> 

    <EditText 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="top" 
    android:layout_marginTop="0dp" 
    android:ems="10" > 

    <requestFocus /> 
    </EditText> 

</LinearLayout> 

<Button 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="290dp" 
    /> 

<!-- Child linear layout with horizontal orientation --> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#2a2a2a" 
    android:orientation="horizontal" > 

<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:text="Previous" android:padding="15dip" android:layout_weight="1" 
    android:gravity="center"/> 

<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:text="Next" android:padding="15dip" android:layout_weight="1" 
    android:gravity="center"/> 

</LinearLayout> 

</LinearLayout> 

проблема. заключается в том, что вы хотите TextView и EditText в одной строке, поскольку вы помещаете родительский LinearLayout в горизонтальную ориентацию, но из-за этого все содержимое сглаживается в горизонтальном направлении.

так, вам нужно родительский Ориентация макета как вертикальная и принять новый макет в что для EditText и TextView для горизонтального разделения. и что новый макет вам нужен в горизонтальной ориентации.

Покажите свой пользовательский интерфейс здесь:

UI based on Above code.

1

Ваш родительский макет показывает дочерний макет, но он отсутствует. Измените ориентацию макета родителя на Вертикальный, и он будет виден.

сделать эти изменения ..

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:baselineAligned="_baseline" 
    android:orientation="vertical" > 

Чтобы получить EditText в одной и той же линии,

Создать дочерний макет для TextView и EditText и сделать его ориентацию в горизонтальном положении .. это будет в том же линия

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:baselineAligned="_baseline" 
    android:orientation="vertical" > 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:baselineAligned="_baseline" 
    android:orientation="horizontal" > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="5dip" 
     android:text="@string/name" /> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="top" 
     android:layout_marginTop="0dp" 
     android:ems="10" > 

    <requestFocus /> 
    </EditText> 
</LinearLayout> 

... 
... 
</LinearLayout> 
2

Изменить первую вертикальную ориентацию линейного расположения. Это должно быть дело ..

0

Это ваше описание, как вы вывесили вопрос, Вы сделали ошибку в ориентации, в комментарии Вы пишете

< - Родитель линейная схема с вертикальной ориентацией ->

но LinearLayout установить ориентации

андроида: ориентация = "горизонтальные"

сделать его

андроида: ориентация = "вертикальный"

и ваша проблема решена.

0

попробовать это ...

<?xml version="1.0" encoding="utf-8"?> 
<!-- Parent linear layout with vertical orientation --> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:baselineAligned="_baseline" 
    android:layout_weight="1" 
    android:orientation="horizontal" > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="5dip" 
     android:text="@string/name" /> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="top" 
     android:layout_marginTop="0dp" 
     android:ems="10" > 

    <requestFocus /> 
    </EditText> 

    <Button 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="290dp" 
     android:text="@string/submit" /> 
</LinearLayout> 

    <!-- Child linear layout with horizontal orientation --> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="#2a2a2a" 
     android:layout_weight="1" 
     android:baselineAligned="_baseline" 
     android:orientation="horizontal" > 

    <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:text="Previous" android:padding="15dip" android:layout_weight="1" 
     android:gravity="center"/> 

    <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:text="Next" android:padding="15dip" android:layout_weight="1" 
     android:gravity="center"/> 

    </LinearLayout> 

</LinearLayout>