2015-04-17 3 views
2

Я хочу добавить элемент xml динамически слева от TableRow.Динамически Добавить XML-макет в TableRow Android

Вот мой xml.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:gravity="center_vertical" > 

<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" > 

    <View 
     android:layout_width="2dp" 
     android:layout_height="match_parent" 
     android:layout_centerVertical="true" 
     android:layout_marginLeft="10dp" 
     android:background="@android:color/black" /> 

    <View 
     android:id="@+id/view1" 
     android:layout_width="7dp" 
     android:layout_height="7dp" 
     android:layout_centerVertical="true" 
     android:layout_marginLeft="7dp" 
     android:background="@drawable/dot" /> 
</RelativeLayout> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="10dp" 
    android:padding="20dp" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

Это выглядит следующим образом: enter image description here

Я хочу, чтобы получить временную шкалу вида. Все мои элементы представляют собой динамически добавленные строки таблицы. И мне нужно добавить этот вид xml слева от моей строки таблицы. Как я могу это сделать?

EDIT: Я попытался добавить его как DrawableWithIntrinsicBounds слева от tablerow. Но это выглядело так: enter image description here. Между фигурами был пробел

+0

Не было бы намного проще (и более эффективно) установить «график времени» в качестве фона для вашей строки таблицы? Простой 9-патч сделает трюк. В качестве альтернативы, может потребоваться настроить строку таблицы, чтобы обрабатывать чертеж самой графики временной шкалы (что было бы более полезным, но также более гибким, если вам нужно динамически изменять его цвета). –

+0

@MH. Я еще не работал с 9-патчем. Любой пример? И я отредактирую свой вопрос по той причине, что это решение с фоном не сработало. Пожалуйста, проверьте –

+0

Я согласен с @MH, он сказал правду, правда и только правду. – pskink

ответ

1

Вы можете создать файл xml под названием: с кодом, указанным выше. Затем у вас есть макет для вашей таблицы, но у вас также есть макет для каждого элемента, который вы положили в таблицу. Это, вероятно, называется что-то вроде: table_item.xml

Тогда вы можете просто включить в него и убедиться, что он на левой стороне:

<include 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    layout="@layout/timeline.xml" /> 
+0

Все элементы TableRow добавляются динамически. Поэтому я хочу включить это динамически –

0

Создайте файл макета для динамического элемента. Затем сделайте динамический вид в tablerow ViewGroup и добавьте раздутый макет в качестве дочернего элемента в вашем коде.

Смежные вопросы