我遇到一个很奇葩的问题,关于listview.setVisibility(View.GONE);竟然不起作用
开发中遇到一个小问题,再点击事件中,listview.setVisibility(View.GONE);竟然不起作用,listview.setVisibility(View.VISIBLE);却正常。代码如下:
public class TechnicianDetailActivity extends BaseActivity {
@BindView(R.id.main_back)
TextView main_back;
@BindView(R.id.main_refuse)
TextView main_refuse;
@BindView(R.id.img_head)
XCRoundImageView img_head;
@BindView(R.id.tv_name)
TextView tv_name;
@BindView(R.id.tv_phone)
TextView tv_phone;
@BindView(R.id.tv_sex)
TextView tv_sex;
@BindView(R.id.tv_level)
TextView tv_level;
@BindView(R.id.tv_click)
TextView tv_click;
@BindView(R.id.mylist)
MyListView mylist;
@BindView(R.id.ll_skill)
LinearLayout ll_skill;
private PopupWindow popupWindow;
@OnClick(R.id.main_back)
void main_back() {
finish();
}
@OnClick(R.id.main_refuse)
void main_refuse() {
showRefusePopwindow(this, main_refuse, contactsChildBeen.getUSER_NAME());
}
private ContactsChildBean contactsChildBeen;
private RequestBean requestBean;
private String JS_SKILLS = "";
private String[] skills = null;
List<String> list = new ArrayList<String>();
private SkillsAdapter skillsAdapter;
private Boolean isShow = false;
@Override
public void initView() {
contactsChildBeen = (ContactsChildBean) getIntent().getExtras().get("DETAIL");
tv_name.setText(contactsChildBeen.getUSER_NAME());
tv_phone.setText(contactsChildBeen.getMOBILE());
JS_SKILLS = contactsChildBeen.getJS_SKILLS();
skills = JS_SKILLS.split(",");
list.clear();
for (int i = 0; i < skills.length; i++) {
list.add(skills[i].toString());
}
Log.d("chengjie", list + "");
skillsAdapter = new SkillsAdapter(this, list);
mylist.setAdapter(skillsAdapter);
}
@OnClick(R.id.ll_skill)
void ll_skill() {
if (isShow){
mylist.setVisibility(View.GONE);
isShow=false;
tv_click.setText("点击展开");
}else{
mylist.setVisibility(View.VISIBLE);
isShow=true;
skillsAdapter.notifyDataSetChanged();
tv_click.setText("点击收起");
}
}
@Override
public int getLayoutId() {
return R.layout.activity_technician_detail;
}
}
}
public class MyListView extends ListView {
public MyListView(Context context) {
super(context);
}
public MyListView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public MyListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
布局如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/main_bg"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/list_item_margin_left_right"
android:layout_marginTop="@dimen/margin_top"
android:layout_marginLeft="@dimen/list_item_margin_left_right"
android:background="@color/white"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll_skill"
android:layout_width="match_parent"
android:layout_height="40dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="专业特长"
android:layout_gravity="center"
android:gravity="left"
android:textSize="@dimen/list_item_text_size"
android:textColor="@color/main_middle_title_text_color"/>
<TextView
android:id="@+id/tv_click"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击收起"
android:layout_gravity="center"
android:textSize="@dimen/list_item_text_size"
android:textColor="@color/main_color"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/line" />
<com.orioc.liftboss.widget.MyListView
android:id="@+id/mylist"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/margin_right"
android:layout_marginLeft="@dimen/margin_left"
android:visibility="visible"/>
</LinearLayout>
</ScrollView>
</LinearLayout>
我在点击LinearLayout时字体确实变了,但是listview却没有隐藏,我也debug一下,代码也都运行了,但就是不隐藏,把GONE改为INVISIBLE后,listview的内容隐藏了,背景还在,但我要求的是listview隐藏,如果在布局文件中先设置隐藏的话,点击后会显示出来,但是在点击就没反应了,求各位大神看看这是什么问题?