自己有一个linearlayout,里面放置的是按纽.我如何做到3秒该linearlayout自动隐藏

bigpretty 2010-08-20 05:57:19
我想做的是,如果不操作的时候,过3秒,该linearlayout自动隐藏.如何实现?
谢谢大家的帮助
...全文
599 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
scncliuzhenlei 2011-03-15
  • 打赏
  • 举报
回复
怎么实现的,我的还是隐藏不了呢,郁闷。
米尤人 2011-03-14
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 bigpretty 的回复:]

恩,实现了,谢谢了
[/Quote]
可以把代友贴出来吗?
bigpretty 2010-08-27
  • 打赏
  • 举报
回复
恩,实现了,谢谢了
ArashmenZhu 2010-08-27
  • 打赏
  • 举报
回复
机制没错,由于你是点全屏幕的任何一点,建议用OnKeyEvent类的监听
比如KeyDown,KeyUp类的方法
nuist320 2010-08-25
  • 打赏
  • 举报
回复
gone 把你代码贴出来
bigpretty 2010-08-24
  • 打赏
  • 举报
回复
做一个记数器就好了
ameyume 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bigpretty 的回复:]
是这样的,我要的是,我现在是全屏幕显示,当我点击屏幕的时候,该linearlayout显示出来,如果我一直不操作,linearlayout才隐藏,如果我操作或者点击屏幕,该linearlayou就不隐藏了.用你们的方法还不能实现,我感觉需要做一个boolean,如果有操作,该计时器为0,重新开始计算.但是由于我能力问题,还是没有解决.求帮助
[/Quote]
设置一个计时器,有按键/触屏操作就取消原来的计时器重新设置一个计时器,原理是这样
bigpretty 2010-08-23
  • 打赏
  • 举报
回复
是这样的,我要的是,我现在是全屏幕显示,当我点击屏幕的时候,该linearlayout显示出来,如果我一直不操作,linearlayout才隐藏,如果我操作或者点击屏幕,该linearlayou就不隐藏了.用你们的方法还不能实现,我感觉需要做一个boolean,如果有操作,该计时器为0,重新开始计算.但是由于我能力问题,还是没有解决.求帮助
ameyume 2010-08-21
  • 打赏
  • 举报
回复

private Timer timer = null;
private TimerTask task = null;
private Handler handler = null;
private Message msg = null;
private LinearLayout layout;

...

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

layout = new LinearLayout(this);

// Handle timer message
handler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
switch(msg.what) {
case 1:
Log.i("SmsTest", "timer 3s out.");
layout.setVisibility(View.GONE);
//layout.invalidate();
break;

default:
break;
}

super.handleMessage(msg);
}

};

task = new TimerTask() {

@Override
public void run() {
// TODO Auto-generated method stub
if (null == msg) {
msg = new Message();
} else {
msg = Message.obtain();
}
msg.what = 1;
handler.sendMessage(msg);
}

};

timer = new Timer(true);
timer.schedule(task, 3000); // set timer duration


我这样做的,但是不起作用,三秒钟到时进入了handleMessage的case 1,但是画面没有隐藏。
不知道为什么
DrSmart 2010-08-21
  • 打赏
  • 举报
回复
timertask或handler的postdelay方法实现计时器,然后如果超过3秒就设置linearlayout的setVisble为gone就消失了
yyy025025025 2010-08-21
  • 打赏
  • 举报
回复
final int FADE_TIME = 3000;
Handler mHandler = new Handler();
LinearLayout layout = (LinearLayout) findViewByID(xxxx)
Runnable mRunnable = new Runnable() {
public void run() {
layout.setVisibility(View.INVISIBLE);
}
};
mHandler.postDelayed(mRunnable, FADE_TIME);
bigpretty 2010-08-20
  • 打赏
  • 举报
回复
有简单的代码实现吗?
charles_lc 2010-08-20
  • 打赏
  • 举报
回复
handler 或者 asynctask都可以
guzhijie1981 2010-08-20
  • 打赏
  • 举报
回复
Hander 发消息。

80,492

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧