3

我正在开发一个应用程序,该应用程序的左侧有一个带有计时器的标题栏,一个以RelativeLayout 为中心的文本视图。

带有 Chronometer 和 TextView 的标题栏

RelativeLayout 采用 textview 的高度并填充屏幕宽度

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/titlecontainer"
    android:orientation="vertical"
    android:padding="5dip" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" android:background="@color/titlebckgrnd">

我想在用户单击时隐藏计时器并取消隐藏用户再次单击。

如何做到这一点?

编辑,进一步回答和评论

这是颜色文件代码

<?xml version="1.0" encoding="utf-8"?>
   <resources>
   <color name="titlebckgrnd">#FFD55A2E</color>
   <color name="titletext">#FFFFFFFF</color>
 </resources>

我按照建议使用了以下代码

final TextView chron = (TextView)findViewById(R.id.chronometer);
    ((Chronometer) chron).start();
 chron.setOnClickListener(new OnClickListener() {
        private boolean mToggle = true;
        @Override
        public void onClick(View v) {
                Log.d("Gaurav", "Invisible");
                if(mToggle) { 
                    Log.d("Gaurav", String.valueOf(chron.getCurrentTextColor()));
                    chron.setTextColor(R.color.titlebckgrnd);
                    mToggle = false;
                }
                else {
                                          chron.setTextColor(R.color.titletext);
                                          mToogle = true;
                                    } 


                //chronImage.setVisibility(View.VISIBLE);

                //v.setVisibility(View.INVISIBLE);

        }
    });

但结果是

在此处输入图像描述

它不再响应任何点击。

LogCat 结果

在此处输入图像描述 在此处输入图像描述

即使是调试器断点也会显示 Textcolor 值的变化,但不会发生显示颜色的变化。

4

1 回答 1

1

如果我正确理解了您的问题,您可以这样做来隐藏计时器:

// We are in your Activity:

final View chronometer= findViewById(R.id.chronometer);

chronometer.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        chronometer.setVisibility(View.GONE); 
        // Use View.INVISIBLE if you would like to keep the room for this view
    }
});

但是将不再显示视图。因此,根据用户应单击的位置使其再次显示,您可能必须为视图和/或其文本提供与背景相同的颜色,而不是使它们不可见:

// should chronometer be a TextView that displays the time:

final TextView chronometer = (TextView) findViewById(R.id.chronometer);

chronometer.setOnClickListener(new View.OnClickListener() {
    private boolean mToggle = true;

    public void onClick(View v) {
        if (mToggle ) {
            chronometer.setTextColor(Color.BLACK); 
            mToggle = false;
        }
        else {
            chronometer.setTextColor(Color.WHITE); 
            mToggle = true;
        }
    }
});
于 2011-09-14T14:59:09.657 回答