视图 setVisibility 用法

本文详细介绍了Android中视图的显示与隐藏方法,通过View对象的setVisibility()方法实现三种不同的隐藏效果:显示、隐藏但仍占空间及完全不占空间的隐藏,并提供了具体的代码实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

视图显示与隐藏




  • 理论说明
  • 效果展示
  • 案例代码




第一章 理论说明

视图的显示和隐藏是采用的 View对象.setVisibility(常量值) 控制的。

这里的常量取值, 通常有三种情况, 他们分别是:
		//[1]显示
		View对象.setVisibility(View.VISIBLE);
		//[2]隐藏 但是会占据到空间的大小
		View对象.setVisibility(View.INVISIBLE);
		//[3]隐藏 但是不会占据空间的大小
		View对象.setVisibility(View.GONE);



表格效果展示

系统API效果说明
setVisiablity(View.VISIABLE)显示视图控件信息
setVisiablity(View.INVISIABLE)隐藏视图控件信息,但是会占据空间大小
setVisiablity(View.GONE)隐藏视图控件信息,不会占据空间的大小





第二章 效果展示

第01节 设置 VISIABLE

在这里插入图片描述

1. 左图:为正常的状态
2. 右图:点击了 VISIBLE 展示的效果, 观察 "显示02" 按钮的效果



第02节 设置 INVISIABLE

在这里插入图片描述

1. 左图:为正常的状态
2. 右图:点击了 INVISIBLE 展示的效果, 观察 "显示02" 按钮的效果



第03节 设置 GONE

在这里插入图片描述

1. 左图:为正常的状态
2. 右图:点击了 GONE 展示的效果, 观察 "显示02" 按钮的效果







第三章 案例代码

步骤01: activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

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

        <Button
            android:id="@+id/btn_visible"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:text="VISIABLE"
            android:textSize="8sp" />

        <Button
            android:id="@+id/btn_invisible"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:text="INVISIABLE"
            android:textSize="8sp" />

        <Button
            android:id="@+id/btn_gone"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:text="GONE"
            android:textSize="8sp" />
    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#FF9900"
        android:orientation="horizontal"
        android:paddingTop="10dp"
        android:paddingBottom="10dp">

        <Button
            android:id="@+id/btn_show01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="显示01" />

        <Button
            android:id="@+id/btn_show02"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="显示02" />

        <Button
            android:id="@+id/btn_show03"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="显示03" />

    </LinearLayout>
    
</LinearLayout>




步骤02: MainActivity

package chc.svip;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private Button btnGone,btnVisible,btnInVisible;
    private Button btnShow01,btnShow02,btnShow03;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        this.btnGone = findViewById(R.id.btn_gone);
        this.btnVisible = findViewById(R.id.btn_visible);
        this.btnInVisible = findViewById(R.id.btn_invisible);

        this.btnShow01 = findViewById(R.id.btn_show01);
        this.btnShow02 = findViewById(R.id.btn_show02);
        this.btnShow03 = findViewById(R.id.btn_show03);

        // 设置按钮的点击事件效果
        this.btnVisible.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v) {
                //设置视图 VISIBLE 显示
                btnShow02.setVisibility(View.VISIBLE);
                Toast.makeText(MainActivity.this,"VISIBLE",Toast.LENGTH_LONG).show();
            }
        });

        // 设置按钮的点击事件效果
        this.btnInVisible.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v) {
                //设置视图 INVISIBLE 隐藏, 还会占据空间大小
                btnShow02.setVisibility(View.INVISIBLE);
                Toast.makeText(MainActivity.this,"INVISIBLE",Toast.LENGTH_LONG).show();
            }
        });

        // 设置按钮的点击事件效果
        this.btnGone.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v) {
                //设置视图 GONE 隐藏, 不占据空间大小
                btnShow02.setVisibility(View.GONE);
                Toast.makeText(MainActivity.this,"GONE",Toast.LENGTH_LONG).show();
            }
        });
    }
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值