android setVisibility(GONE)无效

这种情况的原因大致上有两种:

1.控件本身正在执行动画。

2.设备的性能太差,需要重新加载才能显示正常,即需要被回收和重新构造

 

解决的方法:

对于原因1:

在控件调用隐藏之前,调用view.clearAnimation();

 

对于原因2:

可以在调用隐藏方法后,尝试的使用view.invalidate()或者view.postinvalidate();

如果也不行,直接调用自身的requestLayout或者其父容器的requestLayout()进行强制的界面即时刷新重构;

Android Studio中创建登录界面通常涉及到XML布局文件和Activity Java/Kotlin类。下面是一个简单的步骤说明: 1. **创建XML布局**: - 打开`res/layout`文件夹,创建一个新的XML文件,如`activity_login.xml`。在这个文件里,你可以设计登录表单,包括输入框EditText(用于用户名和密码)、按钮(如登录、注册等),以及可能的错误提示TextView。 ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <EditText android:id="@+id/usernameEditText" android:hint="用户名" /> <EditText android:id="@+id/passwordEditText" android:hint="密码" android:inputType="textPassword" /> <Button android:id="@+id/loginButton" android:text="登录" /> <!-- 可能的错误提示 --> <TextView android:id="@+id/errorText" android:visibility="gone" android:text="请输入正确的信息" /> </LinearLayout> ``` 2. **编写Activity Java/Kotlin代码**: - 创建一个新Activity,例如`LoginActivity.java`或`LoginActivity.kt`。在`onCreate()`方法中,设置视图,并处理按钮点击事件,比如验证输入并跳转到主屏幕或显示错误信息。 ```java // LoginActivity.java (假设你正在使用Java) public class LoginActivity extends AppCompatActivity { private EditText usernameEditText; private EditText passwordEditText; private Button loginButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); // 初始化视图 usernameEditText = findViewById(R.id.usernameEditText); passwordEditText = findViewById(R.id.passwordEditText); loginButton = findViewById(R.id.loginButton); // 设置登录按钮点击事件 loginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String username = usernameEditText.getText().toString(); String password = passwordEditText.getText().toString(); if (isValidCredentials(username, password)) { startActivity(new Intent(LoginActivity.this, MainActivity.class)); } else { hideErrorView(); showError("用户名或密码无效"); } } }); } private boolean isValidCredentials(String username, String password) { // 这里是你的登录验证逻辑 // 返回true表示有效,false表示无效 } private void showError(String message) { TextView errorView = findViewById(R.id.errorText); errorView.setText(message); errorView.setVisibility(View.VISIBLE); } private void hideErrorView() { TextView errorView = findViewById(R.id.errorText); errorView.setVisibility(View.GONE); } } ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值