2016-02-08 3 views
0

Я использую LinearLayout, который не отображает каждый вид.LinearLayout не показывает вид

Это XML-код:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="160dp" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    tools:context="de.schumann_connection.yahtzee.DescriptionColumnFragment"> 

    <View 
     android:layout_width="1dp" 
     android:layout_height="match_parent" 
     android:background="#FF000000" /> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     tools:context="de.schumann_connection.yahtzee.DescriptionColumnFragment"> 

     <View 
      android:layout_width="match_parent" 
      android:layout_height="1dp" 
      android:background="#FF000000" /> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="43dp" 
      android:text=""/> 
     <View 
      android:layout_width="match_parent" 
      android:layout_height="1dp" 
      android:background="#FF000000" /> 
    </LinearLayout> 

    <View 
     android:layout_width="1dp" 
     android:layout_height="match_parent" 
     android:background="#FF000000" /> 
</LinearLayout> 

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

Это должно нарисовать черный прямоугольник. Но правильная вертикальная линия отсутствует. Почему?

ответ

0

Просто добавьте вес к внутренней LinearLayout android:layout_width="0dp" и android:layout_weight="1"

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="160dp" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
> 

<View 
    android:layout_width="1dp" 
    android:layout_height="match_parent" 
    android:background="#FF000000" /> 

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

    <View 
     android:layout_width="match_parent" 
     android:layout_height="1dp" 
     android:background="#FF000000" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="43dp" 
     android:text="Hola"/> 
    <View 
     android:layout_width="match_parent" 
     android:layout_height="1dp" 
     android:background="#FF000000" /> 
</LinearLayout> 

<View 
    android:layout_width="1dp" 
    android:layout_marginRight="5dp" 
    android:layout_height="match_parent" 
    android:background="#FF000000" /> 

+0

Ничего себе, что работает - но я не понимаю, почему. –

+0

вы используете всю ширину с помощью android: layout_width = "match_parent", используя вес, который вы избегаете проблемы;) –

+0

, если вы найдете ответ подходящим, отметьте как было разрешено;) –

1

Это неправильный способ сделать то, что вы пытаетесь сделать. Вам нужен текстовый вид с черным фоном вокруг него? Просто добавьте дополнение к TextView со всех сторон и установите цвет фона.

+0

Нет, это не то, что я пытаюсь сделать. В нем есть несколько элементов управления. Я попытался создать некоторые фрагменты, и я попробовал их добавить в таблицу, но мне не удалось создать таблицу и добавить некоторые столбцы во время выполнения. –

+0

Вы пробовали TableView? Возможно, вы упростили свой пример здесь. –

+0

Я попробую TableView - thx. Я добавил предложение. В нем содержится гораздо больше элементов управления, но этого достаточно, чтобы продемонстрировать проблему. Ясно, что в нем содержится больше элементов управления. –

0

Я не думаю, что «просмотр» - это даже объект.

Похоже, вы предпочли бы относительный вид, а может быть, textView или imageView.

В любом случае причина, по которой она не появляется, заключается в том, что эта вещь не существует.

+0

Я обнаружил, что здесь: http://stackoverflow.com/a/8007773/2729609 –

+0

Просмотр - это объект. Однако использование одного в качестве спейсера обычно означает, что автор делает что-то не так, его очень неэффективный способ делать вещи. Это чаще использовалось 3 или 4 года назад, когда люди поднимались на платформу. –

+0

@GabeSechan Я почти уверен, что я делаю что-то неправильно. Проблема в том, что я разработчик C#, но это первая программа для Android, которую я пытаюсь создать. –

0

Вы установили цвет вид фона как прозрачность "андроид: фон =" # FF000000 "" замените код цвета «андроид: background = "# FF0000" "

+0

И почему все остальные строки выглядят так, как ожидалось? –

+0

Я не уверен, я думаю, в дизайне есть вид, ширина 1dp с прозрачностью, в этом пространстве (1dp) его цвет фона родителей будет виден – Sabari