EditText 仅在我单击 ImageButton 时出现

EditText appear only when i clicked on ImageButton

我想在我点击主页上的 Imagebutton 时显示一个 textfield 以便在其中放置文本,我尝试了一些方法来做到这一点,但我的 textfield每次都这样,不是我想要的

serv = (ImageButton) findViewById(R.id.serverpref);
        serv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                txtServ = (EditText) findViewById(R.id.txtServ);
            }
        });

我该怎么办?

您需要在 ImageviewClickListener 中设置 EditText 的可见性,如下面的代码

txtServ = (EditText) findViewById(R.id.txtServ);
txtServ.setVisibility(View.GONE);
serv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               txtServ.setVisibility(View.VISIBLE);
            }
        });

编辑: 使您的 EditText 可见性 android:visibility="gone" 像这样 xml 布局

<EditText
    android:layout_width="match_parent"
    android:visibility="gone"
    android:layout_height="wrap_content"
    />

尝试一下它会起作用。最初在布局文件中设置 visibility gone

txtServ = (EditText) findViewById(R.id.txtServ);

    serv = (ImageButton) findViewById(R.id.serverpref);
            serv.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                   if(txtServ.getVisibility() == View.GONE){
                        txtServ.setVisibility(View.VISIBLE)
                    } 

             }
            });

你需要先定义你的编辑文本

EditText txtServ = (EditText) findViewById(R.id.txtServ);

然后隐藏它:

txtServ.setVisibility(View.INVISIBLE);

然后在onClickListener中显示:

      serv.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            txtServ.setVisibility(View.VISIBLE);
        }
    });

'gone' 或 'invisible' xml。

<EditText
    android:layout_width="match_parent"
    android:inputType="textCapCharacters"
    android:visibility="gone"
    android:layout_height="wrap_content"
    />

然后让它在点击时可见

serv.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           txtServ.setVisibility(View.VISIBLE);
        }
    });

读取 View 可见性常量。