Android---重新认识view--Visiable\Invisiable\Gone属性

来源:互联网 发布:电视连网络怎么看电视 编辑:程序博客网 时间:2024/06/07 18:03

------ 对于一切模糊的事情,我总要亲自试一试,找到最清晰的答案,并记录下来

------ View的3个属性Visiable\Invisiable\Gone官方说明

 case R.id.btn_show:                /*this view is visible.*/                mListView.setVisibility(View.VISIBLE);                break;            case R.id.btn_dismiss_gone:                 /*this view is invisible, and it dosen't take any space*/                mListView.setVisibility(View.GONE);                break;            case R.id.btn_dismiss_invisiable:                /*this view is invisible, and it still takes up space*/                mListView.setVisibility(View.INVISIBLE);                break;

---- layout.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="#3000"    android:gravity="center"    android:orientation="vertical">    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal">        <Button            android:id="@+id/btn_show"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="show" />        <Button            android:id="@+id/btn_dismiss_gone"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="dismiss_gone" />        <Button            android:id="@+id/btn_dismiss_invisiable"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="dismiss_invisiable" />    </LinearLayout>    <com.helin.loadinglayout.LoadingLayout        android:id="@+id/loading_layout"        android:layout_width="match_parent"        android:layout_height="wrap_content">        <ListView            android:id="@+id/list_view"            android:layout_width="match_parent"            android:layout_height="match_parent"            android:dividerHeight="2dp"></ListView>    </com.helin.loadinglayout.LoadingLayout></LinearLayout>

------- code

 @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_material_progressbar);        initView();        initData();        initListenter();    }    private void initView() {        mListView = (ListView) findViewById(R.id.list_view);        btnDismiss = (Button) findViewById(R.id.btn_dismiss_gone);        btnShow = (Button) findViewById(R.id.btn_show);        btnInvisable = (Button) findViewById(R.id.btn_dismiss_invisiable);    }    private void initData() {        ArrayAdapter<String> stringArrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1);        setStrings(stringArrayAdapter);        mListView.setAdapter(stringArrayAdapter);    }    private void initListenter() {        btnShow.setOnClickListener(this);        btnDismiss.setOnClickListener(this);        btnInvisable.setOnClickListener(this);    }    @NonNull    private void setStrings(ArrayAdapter<String> arrayAdapter) {        for (int i = 0; i < 30; i++) {            arrayAdapter.add("item" + i);        }    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.btn_show:                /*this view is visible.*/                mListView.setVisibility(View.VISIBLE);                break;            case R.id.btn_dismiss_gone:                 /*this view is invisible, and it dosen't take any space*/                mListView.setVisibility(View.GONE);                break;            case R.id.btn_dismiss_invisiable:                /*this view is invisible, and it still takes up space*/                mListView.setVisibility(View.INVISIBLE);                break;            default:                break;        }    }

---- - gif



-------- 结论

View设置为InVisiable\Gone,其实例依然存在,其引用并不会发生NullPoniterException


0 0
原创粉丝点击