我想要一键单击在android中执行任务可见性和隐身

时间:2016-04-27 07:31:05

标签: android

我现在正在使用此代码,但只有隐身才能执行,但我希望当我再次点击时,知名度也应该执行。

mute.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        mute = (ImageButton) findViewById(R.id.mute);
        if (mute.getVisibility() != View.INVISIBLE) {
            power.setVisibility(View.INVISIBLE);
        } else {
            power.setVisibility(View.GONE);
        }
    }
});

5 个答案:

答案 0 :(得分:0)

使用它可以工作.....在类中创建布尔变量作为全局但在方法之外。

FROM microsoft/aspnet:1.0.0-rc1-update1-coreclr

RUN printf "deb http://ftp.us.debian.org/debian jessie main\n" >> /etc/apt/sources.list
RUN apt-get -qq update && apt-get install -qqy sqlite3 libsqlite3-dev && rm -rf /var/lib/apt/lists/*

COPY . /app
WORKDIR /app
RUN ["dnu", "restore"]

EXPOSE 5001/tcp

ENTRYPOINT ["dnx", "-p", "project.json", "web"]

并添加此单击方法。

 boolean flag=true;

静音始终可见,因为您使用功率执行可见性,以便结果相同。

享受编码....

答案 1 :(得分:0)

它没有变化的原因是View.GONEView.INVISIBLE具有隐藏元素的相同行为。要显示元素,您应该使用View.VISIBLE

另一个提示:将静音变量设为全局变量并使用isShown方法。永远记住,在onCreate方法上初始化您的变量,因为它在onClick上进行初始化,但其性能存在差异。

Imageview mute;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mute = (ImageButton) findViewById(R.id.mute);
    mute.setOnClickListener(this);
}


@Override
public void onClick(View v) {
    if (mute.isShown())
        power.setVisibility(View.INVISIBLE);
    else
        power.setVisibility(View.VISIBLE);
    }
});

答案 2 :(得分:0)

View.INVISIBLEView.GONE具有相同的效果,您的观点将无法显示。

唯一的区别是,使用INVISIBLE视图仍会占用空间以进行布局,使用GONE视图将占用任何空间。

您应该使用View.VISIBLE

public void onClick(View v) {
    mute = (ImageButton) findViewById(R.id.mute);
    if (mute.isShown())
        power.setVisibility(View.GONE);
    else
        power.setVisibility(View.VISIBLE);
}

答案 3 :(得分:0)

试试这个,

if (mute.getVisibility() != View.INVISIBLE)
       power.setVisibility(View.INVISIBLE);
else
       power.setVisibility(View.VISIBLE);

答案 4 :(得分:0)

这里是简单的解决方案希望这对你有帮助。

if (yoursecondLayout.getVisibility() == View.GONE) {

        yourfirstlayout.setVisibility(View.GONE);
        yoursecondLayout.setVisibility(View.VISIBLE);

    } else {

        yourfirstlayout.setVisibility(View.VISIBLE);
        yoursecondLayout.setVisibility(View.GONE);

    }