SetVisible在我的自定义视图功能中不起作用

时间:2013-05-22 18:13:30

标签: android android-layout decorator android-view

我为View编写了一个单独的类。我需要在用户需求中显示/隐藏某些字段的位置。但是setvisible(View.GONE)和setVisible(View.Invisible)无效。

我尝试使用无效但结果相同。

@Override
public View view() {
    LayoutInflater inflater1 = LayoutInflater.from(currentActivity);
    View row = inflater1.inflate(R.layout.personal_form, null);

    ed_name = (EditText) row.findViewById(R.id.ed_name);
    ed_email = (EditText) row.findViewById(R.id.ed_email);
    ed_phone = (EditText) row.findViewById(R.id.ed_phone);
    ed_address = (EditText) row.findViewById(R.id.ed_address);
    ed_zipcode = (EditText) row.findViewById(R.id.ed_zip_code);
    ed_title = (EditText) row.findViewById(R.id.ed_title);
    ed_country = (EditText) row.findViewById(R.id.ed_country);

    ImageView img_name = (ImageView) row.findViewById(R.id.img_name);
    ImageView img_email = (ImageView) row.findViewById(R.id.img_email);
    ImageView img_phone = (ImageView) row.findViewById(R.id.img_phone);
    ImageView img_address = (ImageView) row.findViewById(R.id.img_address);
    ImageView img_zipcode = (ImageView) row.findViewById(R.id.img_zip_code);
    ImageView img_title = (ImageView) row.findViewById(R.id.img_title);
    ImageView img_country = (ImageView) row.findViewById(R.id.img_country);

    RelativeLayout layout_oned = (RelativeLayout) row.findViewById(R.id.relative_one);
    RelativeLayout layout_twod = (RelativeLayout) row.findViewById(R.id.relative_two);
    RelativeLayout layout_threed = (RelativeLayout) row.findViewById(R.id.relative_three);
    RelativeLayout layout_fourd = (RelativeLayout) row.findViewById(R.id.relative_four);
    RelativeLayout layout_fived = (RelativeLayout) row.findViewById(R.id.relative_five);
    RelativeLayout layout_sixd = (RelativeLayout) row.findViewById(R.id.relative_six);
    RelativeLayout layout_sevend = (RelativeLayout) row.findViewById(R.id.relative_seven);
    RelativeLayout layout_eightd = (RelativeLayout) row.findViewById(R.id.relative_eight);

    ImageView header_imag_one = (ImageView) row.findViewById(R.id.icon);
    ImageView header_imag_two = (ImageView) row.findViewById(R.id.image_id);
    ImageView header_imag_three = (ImageView) row.findViewById(R.id.image_id_two);
    TextView header_tv = (TextView) row.findViewById(R.id.title);

    header_imag_one.setImageResource(R.drawable.ic_launcher);
    header_tv.setText("string_one");

    if (bool) {
        header_imag_three.setVisibility(View.VISIBLE);
        header_imag_two.setVisibility(View.GONE);

        ed_name.setVisibility(View.VISIBLE);
        ed_email.setVisibility(View.VISIBLE);
        ed_phone.setVisibility(View.VISIBLE);
        ed_address.setVisibility(View.VISIBLE);
        ed_zipcode.setVisibility(View.VISIBLE);
        ed_title.setVisibility(View.VISIBLE);
        ed_country.setVisibility(View.VISIBLE);

        // ed_name.setText(StaticInfo.personalInfoBean.name);
        // ed_email.setText(StaticInfo.personalInfoBean.email_id);
        // ed_phone.setText(StaticInfo.personalInfoBean.phone);
        // ed_address.setText(StaticInfo.personalInfoBean.address);
        // ed_zipcode.setText(StaticInfo.personalInfoBean.zip_code);
        // ed_title.setText(StaticInfo.personalInfoBean.title);
        // ed_country.setText(StaticInfo.personalInfoBean.country);

        img_name.setVisibility(View.VISIBLE);
        img_email.setVisibility(View.VISIBLE);
        img_phone.setVisibility(View.VISIBLE);
        img_address.setVisibility(View.VISIBLE);
        img_zipcode.setVisibility(View.VISIBLE);
        img_title.setVisibility(View.VISIBLE);
        img_country.setVisibility(View.VISIBLE);

        layout_oned.setVisibility(View.VISIBLE);
        layout_twod.setVisibility(View.VISIBLE);
        layout_threed.setVisibility(View.VISIBLE);
        layout_fourd.setVisibility(View.VISIBLE);
        layout_fived.setVisibility(View.VISIBLE);
        layout_sixd.setVisibility(View.VISIBLE);
        layout_sevend.setVisibility(View.VISIBLE);
        layout_eightd.setVisibility(View.VISIBLE);
    } else {
        header_imag_three.setVisibility(View.GONE);
        header_imag_two.setVisibility(View.VISIBLE);

        ed_name.setVisibility(View.GONE);
        ed_email.setVisibility(View.GONE);
        ed_phone.setVisibility(View.GONE);
        ed_address.setVisibility(View.GONE);
        ed_zipcode.setVisibility(View.GONE);
        ed_title.setVisibility(View.GONE);
        ed_country.setVisibility(View.GONE);

        img_name.setVisibility(View.GONE);
        img_email.setVisibility(View.GONE);
        img_phone.setVisibility(View.GONE);
        img_address.setVisibility(View.GONE);
        img_zipcode.setVisibility(View.GONE);
        img_title.setVisibility(View.GONE);
        img_country.setVisibility(View.GONE);

        layout_oned.setVisibility(View.GONE);
        layout_twod.setVisibility(View.GONE);
        layout_threed.setVisibility(View.GONE);
        layout_fourd.setVisibility(View.GONE);
        layout_fived.setVisibility(View.GONE);
        layout_sixd.setVisibility(View.GONE);
        layout_sevend.setVisibility(View.GONE);
        layout_eightd.setVisibility(View.GONE);
    }
    row.invalidate();
    header_tv.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (bool) {
                bool = false;
                submit_request();
            } else {
                bool = true;
            }
            view();
        }
    });
    return row;
}

1 个答案:

答案 0 :(得分:0)

尝试使用yourView.setVisibility(View.INVISIBLE)代替yourView.setVisible(View.Invisible)