DialogFragment中ListView的子项显示不可用

昨天碰到一个很奇怪的总是:DialogFragment中ListView的子项显示不可用

有两个同类型的ListView,相同的Adapter,相同的view,内容也相同.唯一区别是一个是放到Fragment中,一个是放到DialogFragment中,结果放到Fragment中显示正常.放到DialogFragment中显示不下常,所有子项全变成灰色了(就是 enable=false的那种灰色).原因不明...

1.这是放在Fragment中ListView中的子项,显示正常



2.这是放在DialogFragment中的ListView中的子项,显示为灰色.



虽然现在显示的两个item长的不一样.但是我自己也用相同的view,相同的adapter试过,放到DialogFragment中的item就是灰色的,不知道什么原因.


现在还没解决,先mark



Code:


1. normal ListView:

public class SearchFragment extends BaseFragment{
    ListView searchListView;
    SearchListAdapter searchListAdapter;
    …

    init(){
        searchListAdapter = new SearchListAdapter(getActivity(), searchList);
        searchListView.setAdapter(searchListAdapter);
    }
}

class SearchListAdapter{
    	public View getView(int position, View convertView, ViewGroup parent) {
		if (convertView == null) {
			convertView = viewHelper.getView(parent, list, position);
		} else {
			holder = (ViewHolder) convertView.getTag();
		}

		return convertView;
	}

	private static class ViewHelper {
		Context context;

		public ViewHelper(Context context) {
			this.context = context;
		}


		public View getView(ViewGroup parent, List<Apply> list, int position) {
			return getView(parent, list.get(position), position);
		}

		private View getView(ViewGroup parent, Apply item, int position) {
			LayoutInflater inflater = LayoutInflater.from(context);
			View convertView = inflater.inflate(R.layout.search_list_item, parent, false);

			SearchItemViewHolder holder = new SearchItemViewHolder(convertView);
			holder.binderData(position, item);
			convertView.setTag(holder);

			return convertView;
		}
	}
}

search_list_item.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/bg_list_item"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/no"
        style="@style/list_item_no"
        android:background="#ff367300"
        android:text="@string/dispatch_wait_list_item_no_demo"
        android:textSize="36sp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TableLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TableRow
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

                <TextView
                    style="@style/list_item_textview_title"
                    android:text="@string/proposer" />

                <TextView
                    android:id="@+id/applicant"
                    style="@style/list_item_textview"
                    android:layout_width="68dp"
                    android:text="@string/proposer_demo" />

                <TextView
                    style="@style/list_item_textview_title"
                    android:text="@string/workgroup" />

                <TextView
                    android:id="@+id/applicant_workgroup"
                    style="@style/list_item_textview"
                    android:layout_width="match_parent"
                    android:text="@string/applicant_workgroup_demo" />
            </TableRow>

            <TableRow
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

                <TextView
                    style="@style/list_item_textview_title"
                    android:text="@string/auditor" />

                <TextView
                    android:id="@+id/auditor"
                    style="@style/list_item_textview"
                    android:text="@string/engineer_demo" />

                <TextView
                    style="@style/list_item_textview_title"
                    android:text="@string/status" />

                <TextView
                    android:id="@+id/status"
                    style="@style/list_item_textview"
                    android:layout_width="match_parent"
                    android:text="@string/status_close" />

            </TableRow>
        </TableLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TextView
                style="@style/list_item_textview_title"
                android:text="@string/create_date" />

            <TextView
                android:id="@+id/create_date"
                style="@style/list_item_textview"
                android:layout_width="match_parent"
                android:text="@string/dispatch_finish_list_item_apply_date_demo" />

        </LinearLayout>
    </LinearLayout>
</LinearLayout>

2. grey ListView


public class ContractNoPickerDialogFragment extends BaseDialogFragment {
    ListView searchListView;
    ContractNoAdapter contractNoAdapter;

    …
    init(){
        contractNoAdapter = new ContractNoAdapter(getContext(), searchList);
        searchListView.setAdapter(contractNoAdapter);
        searchListView.setOnItemClickListener(this);
    }
}

class ContractNoAdapter{
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = viewHelper.getView(parent, list, position);
        } else {
//			holder = (ViewHolder) convertView.getTag();
        }

        return convertView;
    }

    private static class ViewHelper {
        Context context;

        public ViewHelper(Context context) {
            this.context = context;
        }


        public View getView(ViewGroup parent, List<Contract> list, int position) {
            return getView(parent, list.get(position), position);
        }

        private View getView(ViewGroup parent, Contract item, int position) {
            LayoutInflater inflater = LayoutInflater.from(context);
            View convertView = inflater.inflate(R.layout.contrat_no_list_item, parent, false);

            ContractNoItemViewHolder holder = new ContractNoItemViewHolder(convertView);
            holder.binderData(position, item);
            convertView.setTag(holder);

            return convertView;
        }
    }
}



contrat_no_list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/bg_list_item"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:baselineAligned="false"
        android:orientation="horizontal">

        <TextView
            style="@style/form_row_left"
            android:layout_width="wrap_content"
            android:text="@string/contract_no" />

        <TextView
            android:id="@+id/contract_no"
            style="@style/form_row_right_text"
            android:hint="@string/loading" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:baselineAligned="false"
        android:orientation="horizontal">

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2"
            android:orientation="horizontal">

            <TextView
                style="@style/form_row_left"
                android:layout_width="wrap_content"
                android:text="@string/project_name2" />

            <TextView
                android:id="@+id/project_name"
                style="@style/form_row_right_text"
                android:hint="@string/loading" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="3"
            android:orientation="horizontal">

            <TextView
                style="@style/form_row_left"
                android:layout_width="wrap_content"
                android:text="@string/sales" />

            <TextView
                android:id="@+id/sales"
                style="@style/form_row_right_text"
                android:hint="@string/loading" />
        </LinearLayout>


    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:baselineAligned="false"
        android:orientation="horizontal">

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:orientation="horizontal">

            <TextView
                style="@style/form_row_left"
                android:layout_width="wrap_content"
                android:text="@string/start_date" />

            <TextView
                android:id="@+id/check_start_date"
                style="@style/form_row_right_text"
                android:hint="@string/loading" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:orientation="horizontal">

            <TextView
                style="@style/form_row_left"
                android:layout_width="wrap_content"
                android:text="@string/end_date" />

            <TextView
                android:id="@+id/check_end_date"
                style="@style/form_row_right_text"
                android:hint="@string/loading" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>



总算解决了:


在listview的子项中显式调用 setColor,setstyle之类的...


不过还是不太清楚不设置color时,设计UI时显示正常,实机测试为啥就不对了呢?


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值