我在列表项布局上应用背景颜色时遇到了麻烦。我正在做一个示例应用程序来学习android。我的问题是它显示了彩色背景,但它不是列表项布局的大小。它有点小。由于某些原因它不起作用,这里的每个人都建议设置一个背景绘制,设置如下:
view.setBackgroundResource(R.drawable.ic_green);
我在CursorAdapter.bindView(View view, Context context, Cursor cursor)
内执行此操作。因为我当然正在处理清单。每个项目都有一个相应的颜色数据,我需要在每个列表项上反映出来。我需要以编程方式执行此操作。因为我必须允许我自己改变背景颜色。
看起来像这样:
我的可绘制资源如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FFFFCC" />
</shape>
这就是我的列表项布局的样子:
<?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="wrap_content"
android:layout_gravity="end"
android:layout_margin="5sp"
android:background="@drawable/note_style"
android:padding="5sp"
android:paddingLeft="10sp"
android:paddingRight="10sp" >
<TextView
android:id="@+id/textview_note_short"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:gravity="start"
android:maxLength="18"
android:maxLines="1"
android:text="@string/text_sample_short_note"
android:textSize="18sp" />
<TextView
android:id="@+id/textview_note_remind_every"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/textview_note_short"
android:layout_alignStart="@id/textview_note_short"
android:layout_below="@id/textview_note_short"
android:text="@string/text_sample_remind_every"
android:textSize="12sp" />
<TextView
android:id="@+id/textview_note_date_created"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignTop="@id/textview_note_short"
android:text="@string/text_sample_date"
android:textSize="12sp" />
<ImageView
android:id="@+id/imageview_note_notification_alarm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/textview_note_remind_every"
android:layout_alignRight="@id/textview_note_date_created"
android:layout_alignEnd="@id/textview_note_date_created"
android:adjustViewBounds="true"
android:contentDescription="@string/content_description_past_due"
android:maxHeight="20dp"
android:maxWidth="20dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_action_alarm" />
<ImageView
android:id="@+id/imageview_note_notification_due"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/imageview_note_notification_alarm"
android:layout_toLeftOf="@id/imageview_note_notification_alarm"
android:layout_toStartOf="@id/imageview_note_notification_alarm"
android:adjustViewBounds="true"
android:contentDescription="@string/content_description_past_due"
android:maxHeight="20dp"
android:maxWidth="20dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_action_due" />
</RelativeLayout>
它确实改变了背景颜色,但正如你在图片上看到的那样,绿色背景不会碰到布局的边缘,它应该与屏幕的宽度相匹配并高度包装其内容。
有什么想法吗?谢谢!