首页 > 解决方案 > 以编程方式禁用浮动操作按钮

问题描述

我有一个浮动操作按钮,我想为来宾用户停用或禁用它(我的来宾用户在 时userId == null)。

我尝试使用if...else,但它不起作用,并且浮动操作按钮对来宾用户仍然有效。

import android.os.Bundle;

import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.view.View;
import android.widget.Toast;

public class inset extends AppCompatActivity {
    private String USER_ID;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_inset);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = findViewById(R.id.fab);

        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                            .setAction("Action", null).show();

            }
        });
    }

}

标签: androidfloating-action-button

解决方案


通过FloatingActionButton设置禁用。这是代码。visibilityGONE

import android.os.Bundle;

import com.google.android.material.floatingactionbutton.FloatingActionButton; 
import com.google.android.material.snackbar.Snackbar;

import androidx.appcompat.app.AppCompatActivity; 
import androidx.appcompat.widget.Toolbar;

import android.view.View; import android.widget.Toast;

public class inset extends AppCompatActivity { 

private String USER_ID;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_inset);
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = findViewById(R.id.fab);


    if(userID==null) fab.setVisibility(View.GONE); 
    else fab.setVisibility(View.VISIBLE); 

    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();

        }
    });
}
}

希望这可以帮助。随时要求澄清。


推荐阅读