2012-01-04 4 views
1

У меня есть макет, как это:Android включают расположение

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

<include layout="@layout/basicinfo" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="profile" /> 

<Button 
    android:id="@+id/button2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="item" /> 

</LinearLayout > 

проблема заключается в том, что она показывает только включать часть, ни одна кнопка не появляется. если я удалю макет включения, появятся кнопки. любая идея, что я делаю неправильно здесь? Благодарю.

обновление: расположение basicinfo:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 

<ImageView 
    android:id="@+id/imageView" 
    android:layout_width="70dp" 
    android:layout_height="wrap_content" 
    android:src="@drawable/icon"/> 

<LinearLayout 
    android:id="@+id/linearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@+id/imageView1" 
    android:layout_toRightOf="@id/imageView" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/TextView01" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="2dp" 
     android:text="Name:" /> 

    <TextView 
     android:id="@+id/TextView02" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="2dp" 
     android:text="Catogery:" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="2dp" 
     android:text="Description" /> 

    <TextView 
     android:id="@+id/TextView03" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="2dp" 
     android:text="Owner" /> 
</LinearLayout> 

</RelativeLayout> 
+1

Вы можете также разместить прилагаемый макет XML? –

+0

Не могли бы вы также отправить файл xml-файл basicinfo? –

+0

haa ... Я думал, что это будет слишком много для публикации. Я все равно его обновлю. – bingjie2680

ответ

3

У меня возникла проблема. это потому, что я использовал match_parent в базовой компоновке. Я только что изменил, что от

android:layout_width="match_parent" 
android:layout_height="match_parent" 

к

android:layout_width="wrap_content" 
android:layout_height="wrap_content" 

спасибо за помощь.

1

Я хотел бы проверить layout_width и layout_height. В основном это ошибка отображения ошибок.

1

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

+0

Я пробую макет и высоту с оберткой. он, похоже, не работал. – bingjie2680

+0

попытайтесь установить точные значения ... например, 200 dip. –

+0

Я видел, что у вас все еще есть родительский столбец в linearLayout из вашего include xml ... попытайтесь изменить это .. в wrap_content ... или поместите некоторые значения, такие как 150dip или что-то еще –

5

Определение включаемых файлов layout_height и ширину eample:

<include layout="@layout/basicinfo"  
android:layout_width="100dp" 
android:layout_height="100dp"/> 
+0

Спасибо, это сработает. но использование фиксированного измерения может быть неудобным для всех устройств. – bingjie2680

+0

Да. Ты прав. но предположим, что файл basicinfo имеет большое количество контента, в этом случае часть содержимого основного макета будет отсутствовать. Итак, еще одно решение - использовать layout_weight –

0

Изменить внешнюю ширину LinearLayout и высоту fill_parent, а также разместить полосу прокрутки внутри него.

-1

Использование слияния ...

использовать элемент, как вид корня для повторного использования макета

<merge xmlns:android="http://schemas.android.com/apk/res/android"> 

    <Button 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/add"/> 

    <Button 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/delete"/> 

</merge> 

Developer Site

0

Одной из основных проблем, с включаемой раскладкой, что ОБА android:layout_width и android:layout_height, или макет просто заполнит экран (если, например, установлена ​​только высота, он будет игнорироваться без установки ширины).

Так что-то подобное должны быть сделаны:

<include 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    layout="@layout/myLayout" /> 
Смежные вопросы