android 控件的隐藏和显示

本文详细解释了Android中控件的两种隐藏状态——GONE和INVISIBLE的区别。GONE状态下控件完全不占用界面空间,而INVISIBLE状态虽然不可见但仍保留其布局空间。

控件的隐藏与显示属性:
举例说明:
private ListView mListview1,mListview2;

mlistview1.setVisibility(View.GONE);//mlistview1处于隐藏状态
//mlistview1.setVisibility(View.INVISIBLE);//mlistview1处于隐藏状态
mlistview2.setVisibility(View.VISIBLE);//mlistview2处于显示状态

GONE与INVISIBLE的区别,GONE不占空间INVISIBLE虽然是不显示,但界面上仍占据着空间

Android 的 RecyclerView 的 item 中添加控件隐藏显示动画,可参考以下通用思路: ### 原理 在 `onBindViewHolder` 方法中根据数据状态来决定控件显示隐藏,并添加动画效果。 ### 代码示例 ```java import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import androidx.recyclerview.widget.RecyclerView; public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { // 假设这是你的数据列表 private java.util.List<Boolean> isVisibleList; public MyAdapter(java.util.List<Boolean> isVisibleList) { this.isVisibleList = isVisibleList; } @Override public MyViewHolder onCreateViewHolder(android.view.ViewGroup parent, int viewType) { android.view.View view = android.view.LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false); return new MyViewHolder(view); } @Override public void onBindViewHolder(MyViewHolder holder, int position) { boolean isVisible = isVisibleList.get(position); if (isVisible) { showViewWithAnimation(holder.itemView); } else { hideViewWithAnimation(holder.itemView); } } @Override public int getItemCount() { return isVisibleList.size(); } private void showViewWithAnimation(View view) { Animation fadeIn = AnimationUtils.loadAnimation(view.getContext(), android.R.anim.fade_in); view.startAnimation(fadeIn); view.setVisibility(View.VISIBLE); } private void hideViewWithAnimation(View view) { Animation fadeOut = AnimationUtils.loadAnimation(view.getContext(), android.R.anim.fade_out); view.startAnimation(fadeOut); view.setVisibility(View.GONE); } public static class MyViewHolder extends RecyclerView.ViewHolder { public MyViewHolder(android.view.View itemView) { super(itemView); } } } ``` 在上述代码中,`showViewWithAnimation` 方法使用 `fade_in` 动画来显示控件,`hideViewWithAnimation` 方法使用 `fade_out` 动画来隐藏控件。在 `onBindViewHolder` 方法中根据数据状态调用相应的动画方法。 ### 注意事项 - 可以根据需求自定义动画,例如使用 `AnimationSet` 组合多个动画效果。 - 要确保动画的执行时间效果符合设计要求,避免动画过于突兀。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值