2015-08-27 3 views
0

Я пытаюсь сделать горизонтальный разделитель, используя элемент «Вид». Я проголосовал за код ниже, но проблема заключается в том, что разделитель всегда имеет очень широкую ширину, несмотря на ширину представления, как показано на рисунке belwo, устанавливается match_parent , пожалуйста, дайте emknow, как его исправить.Как сделать горизонтальный разделитель с помощью View elemnt

обновление:

проблема, вид всегда так велик, как ImageView ?? !! я не знаю почему? любое объяснение?

расположение:

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

<TableLayout 
    android:id="@+id/tl_MainTable" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center_horizontal" 
    android:orientation="vertical"> 
    <TableRow 
     android:id="@+id/tr_Logo" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:weightSum="3"> 
     <ImageView 
      android:id="@+id/iv_Logo" 
      android:layout_height="wrap_content" 
      android:src="@drawable/fr" 
      android:adjustViewBounds="true" 
      android:layout_weight="0" 
      android:contentDescription="@null"/> 
     <TextView 
      android:id="@+id/tv_Title" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical|center_horizontal" 
      android:gravity="center_horizontal" 
      android:layout_weight="3" 
      android:text="@string/str_Disc_Neigh_Device"/> 
    </TableRow> 

    <TableRow 
     android:id="@+id/tr_Divider" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 
     <View 
      android:id="@+id/v_Divider" 
      android:layout_width="match_parent" 
      android:layout_height="3dp" 
      android:background="#90909090"/> 
    </TableRow> 
</TableLayout> 

+0

Попробуйте сделать ширину 1 или 2 дп. – jrsall92

+0

@ jrsall92 Я попробовал, но не решился на это – rmaik

+0

В макете стола есть разделители по умолчанию android: showDividers = "yourvalue" вместо этого используйте –

ответ

1

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

<View android:layout_width="fill_parent" android:layout_height="1dp" android:id="@+id/separator1" android:visibility="visible" android:background="#00000000" android:layout_gravity="center_horizontal"/>

изменения background по вашему вкусу

+0

Я попробовал, и но пока это не работает. проблема в том, что представление всегда так же широко, как и изображениеView !! я не знаю почему? любое объяснение? – rmaik

+0

@ rmaik, потому что вы используете относительный макет. Вещи будут относиться друг к другу. Если вам действительно не нужен относительный макет, попробуйте линейный. – jrsall92

+0

но я не указал, что представление должно относиться к imageView ?? насколько я знаю, чтобы сделать элементы по отношению друг к другу, вам нужно явно указывать его как-то вроде android: layout_toEndOf – rmaik

0

Изменение 2-ой TableRow к LinearLayout

<LinearLayout 
     android:id="@+id/tr_Divider" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 
     <View 
      android:id="@+id/v_Divider" 
      android:layout_width="match_parent" 
      android:layout_height="3dp" 
      android:background="#902631" 
      android:layout_span="2" /> 
    </LinearLayout> 

вид изменить цвет фона, как вы хотите.

+0

спасибо, но может у, пожалуйста, объясните мне мой вопрос в разделе обновлений выше ?? еще раз спасибо – rmaik

+1

@ rmaik, Chailds в TableRow похожи на столбцы или ячейки в таблице, каждая ячейка будет занимать ширину, основанную на максимальной ширине, занимаемой ячейкой в ​​вашем TableLayout. Поэтому, если ваше изображение будет занимать 10% ширины экрана, и если это максимальное значение с вашим TableLayout, все первые Child's также занимают 10% ширины. потому что iv_Logo и v_Divider находятся в одном столбце вашего TableLayout. –

0

В таблице есть разделитель по умолчанию android:showDividers="yourvalue", вы можете использовать его вместо этого. также установить разделительную шину с помощью android:dividerPadding="valueindp"

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

  • Нет связанных вопросов^_^