2

我正在開發一款應用程序,該應用程序的左側有一個標記欄,並且在RelativeLayout中有一個文本視圖。如何使android天文臺在點擊時不可見和可見

Title bar with Chronometer and 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"> 

我想隱藏chornometer當用戶點擊了它,並取消隱藏用戶再次點擊。

這是如何實現的?

EDIT,進一步的答案,評論

這裏是彩色文件代碼

<?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); 

     } 
    }); 

但結果是

enter image description here

並且它不響應任何更多的點擊。

logcat的結果

enter image description here enter image description here

即使調試器斷點顯示TEXTCOLOR價值,但在顯示顏色變化不會發生變化。

回答

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; 
     } 
    } 
}); 
+0

我添加了一些代碼和圖片以及我在下面提出的問題。 –

+1

好吧,我看到你將'chron'投射到'TextView',然後投入'Chronometer'。這不是問題的原因,但你可以將它直接投射到'Chronometer'上,因爲'Chronometer'延伸了'TextView'。關於這個問題本身,你的LogCat是怎麼說的?您是否嘗試過在偵聽器中設置斷點以查看是否被正確調用? – Shlublu

+0

我已將LogCat結果添加到問題中。我不知道如何設置斷點,我正在閱讀並稍後添加評論。我會執行投射建議。 –