2014-01-25 2 views
1

Я пытаюсь добавить горизонтальную строку ниже всех моих текстовых элементов в приложении WIDGET для Android, но у меня есть проблема, и по какой-то причине это не работает.Добавить горизонтальную линию в виджет Android

Edit: вот мой полный XML виджета, который я использую в моем приложении

<?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" > 

<LinearLayout 
    android:id="@+id/liner" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="10dp" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/da" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

    <TextView 
     android:id="@+id/sv" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

    <View 
     android:layout_width="fill_parent" 
     android:layout_height="2dip" 
     android:background="#B3B2B0" 
     android:padding="10dp" /> 

    <TextView 
     android:id="@+id/ti" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 

+1

потому, что его удаленный просмотр в виджете я предполагаю, что есть проблема, в нормальных MainActivity.class это нормально я использую его, но когда речь идет о к моему виджету в AppWidget.class он говорит о проблеме с отображением виджета ... – Deron

+1

вы можете вставить прилагаемый XML? Возможно, это проблема с размещением вашего представления в иерархии –

+1

сразу. – Deron

ответ

4

Ваша проблема заключается в том, что виджеты не поддерживает взгляды, как вы можете видеть here. В вашем случае, вы могли бы заменить этот вид на LinearLayout, как это:

<LinearLayout 
    android:id="@+id/widget_horizontal_white_bar" 
    android:layout_width="fill_parent" 
    android:layout_height="3dip" 
    android:layout_marginLeft="20dp" 
    android:layout_marginRight="20dp" 
    android:layout_marginTop="6dp" 
    android:background="#FFFFFF" 
    android:orientation="horizontal" > 
</LinearLayout> 
+1

Вы знаете, как удалить слой программно updateViews.remove ... что-то вроде ..? – Deron

+0

Это должно работать: 'View widget_horizontal_white_bar = view.findViewById (R.id. Widget_horizontal_white_bar); ((LinearLayout) widget_horizontal_white_bar.getParent()). RemoveView (widget_horizontal_white_bar); ' – GoRoS

+2

Или просто создайте представление' INVISIBLE' или 'GONE', если вы не хотите удалить его из трех видов View:' ((LinearLayout) findViewById (R.id.widget_horizontal_white_bar)) setVisibility (View.GONE);. ' – GoRoS

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