首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在android中隐藏5秒后的嵌套布局?

如何在android中隐藏5秒后的嵌套布局?
EN

Stack Overflow用户
提问于 2015-08-19 19:50:25
回答 3查看 794关注 0票数 0

我需要在5秒后隐藏一个嵌套布局。我的布局代码如下:

代码语言:javascript
复制
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/invitation_single"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="?android:dividerVertical"
    android:dividerPadding="5dp"
    android:showDividers="middle"
    tools:context=".MainActivity">

    <ImageButton
        android:id="@+id/image"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/ic_action_event" />

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_weight="1"
        android:clickable="false"
        android:focusable="true"
        android:orientation="vertical">

        <TextView
            android:id="@+id/invitation_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="5dp"
            android:paddingRight="0dp"
            android:paddingTop="3dp"
            android:textColor="@color/black"
            android:textSize="18sp" />

        <TextView
            android:id="@+id/invitation_place"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="5dp"
            android:paddingRight="0dp"
            android:textColor="@color/black"
            android:textSize="15sp" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/hidden"
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_marginLeft="-270dp"
        android:layout_marginTop="60dp"
        android:layout_weight="1"
        android:clickable="true"
        android:focusable="true"
        android:orientation="horizontal"
        android:paddingTop="1dp"
        android:visibility="gone"
        android:weightSum="3">


        <Button
            android:id="@+id/yesbutton"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_marginLeft="7dp"
            android:layout_weight="1"
            android:background="@color/blue"
            android:text="Yes"
            android:textColor="@color/black"></Button>

        <Button
            android:id="@+id/nobutton"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_marginLeft="25dp"
            android:layout_weight="1"
            android:background="@color/blue"
            android:text="No"
            android:textColor="@color/black"></Button>

        <Button
            android:id="@+id/buttonmaybe"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_marginLeft="25dp"
            android:layout_marginRight="10dp"
            android:layout_weight="1"
            android:background="@color/blue"
            android:text="Maybe"
            android:textColor="@color/black"></Button>

    </LinearLayout>


</LinearLayout>

我的编程代码如下

代码语言:javascript
复制
    final LinearLayout first = (LinearLayout) convertView.findViewById(R.id.invitation_single);


   final LinearLayout second = (LinearLayout) convertView.findViewById(R.id.hidden);

 first.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        switch (v.getId()) {
                            case R.id.invitation_single:
                                //second.setVisibility(View.VISIBLE);
                                second.setVisibility(second.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE);
                                break;

                        }

                    }

当我单击rootlayout(invitation_single)时,嵌套布局(隐藏)就在rootlayout.But下面可见。我需要的是在5秒后隐藏嵌套布局。单击根layout.How我可以做到这一点吗?

EN

回答 3

Stack Overflow用户

发布于 2015-08-19 19:52:21

使用Thread.sleep()

代码语言:javascript
复制
case R.id.invitation_single:
    try {
        Thread.sleep(5000);                 //1000 milliseconds = 1 second.
    } catch(InterruptedException ex) {
        Thread.currentThread().interrupt();
    }
    // EXECUTED LINES AFTER THE 5 SECONDS DELAY GOES HERE!
    //second.setVisibility(View.VISIBLE);
    second.setVisibility(second.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE);

break;
票数 0
EN

Stack Overflow用户

发布于 2015-08-19 19:57:04

尝尝这个

代码语言:javascript
复制
 case R.id.invitation_single:
                                //second.setVisibility(View.VISIBLE);

Timer timer=new Timer();
timer.schedule(new TimerTask(){
@Override
public void run(){
                                second.setVisibility(second.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE);
                                break;
}}5000);
票数 0
EN

Stack Overflow用户

发布于 2015-08-19 19:57:20

在特定时间后执行操作时使用处理程序:

代码语言:javascript
复制
new Handler().postDelayed(new Runnable() {

            @Override
            public void run() {
                // This method will be executed once the timer is over
                second.setVisibility(second.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE);
            }
        }, 5000);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32094704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档