2015-09-26 2 views
1

Я разрабатываю свое приложение, используя avd на основе Lollipop, где я использовал SetBackgroundResource, чтобы установить фон строки listview с помощью пользовательского drawable (layer-list). Он отлично работает.Android SetBackgroundResource & SetBackground не работает pre lollipop

Строка x LinearLayout имеет заданный по умолчанию синий фон.

Jelly Bean и Kit Kat, используя SetBackgroundResource удаляет синий цвет по умолчанию, но не устанавливает его на запрошенный фоном. Я также попробовал SetBackground после изменения minsdk с 15 до 16.

По-прежнему нет радости.

((LinearLayout)v.getParent()).setBackgroundResource(R.drawable.border_purple); 

Я также пробовал;

((LinearLayout)v.getParent()).setBackground(ContextCompat.getDrawable(context,R.drawable.border_orange)); 

Строка XML

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_height="match_parent" android:layout_width="match_parent" 
android:orientation="vertical" 
android:background="@drawable/border_blue" 
android:padding="12dp" 
android:layout_marginBottom="16dp" 
android:id="@+id/layout_row"> 
<TextView 
    android:layout_height="wrap_content" 
    android:id="@+id/item_title" 
    android:text="" 
    android:layout_width="match_parent" 
    android:textSize="20sp" 
    android:textColor="@color/primary_dark_material_light" 
    android:background="#FFFFFF"/> 
<View 
    android:layout_width="match_parent" 
    android:layout_height="2px" 
    android:background="#D3DFE3" /> 
<TextView 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:id="@+id/item_byline" 
    android:text="" 
    android:background="#FFFFFF"/> 
</LinearLayout> 
+0

Вы пробовали это:.. '((LinearLayout) v.getParent()) setBackgroundResource (. GetResources() getDrawable (R.drawable.border_purple));' –

+0

Я попытался context.getResources() getDrawable (R .drawable.border_blue), который создает ошибку int, не может быть применен к drawable и getResources без контекста, вызывает ошибку, которая не может разрешить метод. – tywsge

ответ

0

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

+0

его не работает в моем случае ... используется как sideline1.setBackgroundResource (R.color.gray_connector); sideline1.setBackgroundColor (. GetResources() GetColor (R.color.gray_connector)); –

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