在我的主要活动上是一个ListView,但在某些设备上,如Galaxy s3,该项目是黑色的,但在我的S4上,它显示正常,我可以看到文本。我试过android:background =“@ android:color / transparent但它仍然是黑色,也是android:cacheColorHint =”@ android:color / transparent“没有帮助。我希望有人可以提供帮助。
MainActivity:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
tools:context=".MainActivity" >
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:cacheColorHint="@android:color/transparent"
android:background="@android:color/transparent" >
</ListView>
ListView只有第一个没有内容textview的标题:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@layout/list_item_border"
android:cacheColorHint="@android:color/transparent" >
<!-- <style android:name="Divider">
<item android:name="android:layout_height">100dp</item>
<item android:name="android:background">?android:attr/listDivider</item>
</style> -->
<TextView
android:id="@+id/titleItem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:paddingLeft="3dp"
android:paddingRight="3dp"
android:paddingBottom="10dp"
android:textColor="#000000"
android:cacheColorHint="@android:color/transparent"
android:background="@android:color/transparent"
android:textSize="25dp" />
答案 0 :(得分:0)
我遇到了你所描述的同样问题。看起来您还有一个用于显示列表视图项的自定义视图 - 所以这可能对您有用!
我已经覆盖了我的&#34; CustomAdapter&#34;中的getView方法,这是一个扩展ArrayAdapter的类。在该类的getView方法中,我将所有未选择的项设置为drawable - 并且drawable具有纯色是很重要的 - 如下所示:
(这是R.drawable.item_default)
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="@android:color/transparent" />
</shape>
我的问题通过这样解决了。下面是我的扩展类的代码:
public class CustomAdapter extends ArrayAdapter<String> {
private ArrayList<String> items;
private LayoutInflater mInflater;
private int viewResourceId;
private int selectedPosition = -1;
private int selectedTextView;
private Context myContext;
public CustomAdapter(Activity activity,int resourceId, int textViewId,
ArrayList<String> list, Context context) {
super(activity,resourceId,textViewId, list);
// Sets the layout inflater
mInflater = (LayoutInflater)activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// Set a copy of the layout to inflate
viewResourceId = resourceId;
selectedTextView = textViewId;
myContext = context;
// Set a copy of the list
items = list;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LinearLayout layout = (LinearLayout) convertView;
if (layout == null) {
layout = (LinearLayout)mInflater.inflate(viewResourceId, null);
}
TextView tv = (TextView) layout.findViewById(selectedTextView);
tv.setText(items.get(position));
// Change the background color
if (position==selectedPosition){
tv.setBackground(myContext.getResources().getDrawable(R.drawable.item_pressed));
}
else {
tv.setBackground(myContext.getResources().getDrawable(R.drawable.item_default));
}
return layout;
}
public void setSelected(int position) {
selectedPosition = position;
}
}
黑名单视图仅在我在Galaxy S2上运行应用程序时显示。它像我想要的S4 Mini一样透明 - 希望这可能会在某种程度上帮助你!