0
我試圖用可擴展列表的父項設置一個特定視圖的顏色,但是當我這樣做時我在子視圖中發現顏色也正在受到影響,這很奇怪。在可擴展列表視圖中設置視圖背景的Android問題
將視圖從白色變爲黑色似乎解決了這個問題,它似乎只出現在一些手機上,它真的開始讓我發瘋,但我找不到任何人遇到同樣的問題。
繼承自我的自定義類,它擴展了BaseExpandableListAdapter。
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater inflater = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(SUM_HOST, parent, false);
}
View statView = (View)v.findViewById(R.id.statViewABCDE);
int caseTest = hostParents.get(groupPosition).getState();
switch (caseTest) {
case Constants.STATE_OK:
statView.setBackgroundColor(ctx.getResources().getColor(R.color.host_up_state));
break;
case Constants.STATE_DOWN:
statView.setBackgroundColor(ctx.getResources().getColor(R.color.host_down_state));
break;
case Constants.STATE_UNKNOWN:
statView.setBackgroundColor(ctx.getResources().getColor(R.color.host_unreachable_state));
break;
}
return v;
}
下面是我的父XML文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="0dp" >
<LinearLayout
android:id="@+id/sumHostLay"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/defViewMargin"
android:layout_marginRight="@dimen/defViewMargin"
android:layout_marginTop="@dimen/defViewMargin"
android:background="@drawable/rounded_corners_background"
android:gravity="center_horizontal"
android:orientation="horizontal"
android:padding="@dimen/defViewPadding" >
<View
android:id="@+id/statViewABCDE"
android:layout_width="3dip"
android:layout_height="fill_parent"
android:background="@android:color/black" />
<TextView
android:id="@+id/sumHostTitleAndOutput"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="5dp"
android:paddingLeft="5dp"
android:singleLine="true"
android:text="@string/hostrow_hostname"
android:textSize="13sp" />
</LinearLayout>
這裏是我的XML的孩子。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_margin="0dp" >
<LinearLayout
android:id="@+id/asdasd"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="@dimen/defViewMargin"
android:orientation="vertical" >
<View
android:id="@+id/line1"
android:layout_width="1dip"
android:layout_height="fill_parent"
android:layout_margin="3dp"
android:background="@android:color/white" />
</LinearLayout>
<LinearLayout
android:id="@+id/line2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" >
<View
android:id="@+id/line4"
android:layout_width="20dp"
android:layout_height="1dp"
android:background="@android:color/white" />
</LinearLayout>
從理論上講,我只是想設置父XML即statViewABCDE但是我發現,背景顏色在子視圖藏漢改變了看法。特別是「line1」和「line4」正在改變。
編輯:
設置線是不同的顏色(即黑色的一組白色其他人,似乎已經奏效,但我不知道爲什麼。)
找到此問題在運行Android 4.1.2的手機上進行測試時發生。