2

왼쪽에 크로노 미터가있는 제목 표시 줄이 있고 RelativeLayout에 가운데에 텍스트 뷰가있는 앱을 만들고 있습니다.클릭하면 안드로이드 크로노 미터를 보이지 않게 보이게하는 법

Title bar with Chronometer and TextView

RelativeLayout의 내가 chornometer을 숨길 때에 사용자가 클릭하고 사용자가 다시 클릭을 숨기기를 해제하려면 화면 너비를

<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"> 

을 텍스트 뷰의 높이를 가지고 입력합니다.

어떻게 달성 할 수 있습니까?

편집, 추가 답변 및 의견에 : 여기

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

     } 
    }); 

을 제안

<?xml version="1.0" encoding="utf-8"?> 
    <resources> 
    <color name="titlebckgrnd">#FFD55A2E</color> 
    <color name="titletext">#FFFFFFFF</color> 
</resources> 
내가 다음 코드를 사용하는 색상 파일의 코드는하지만 결과는

enter image description here

그리고 더 이상 클릭에 응답하지 않습니다.

로그 캣은 심지어 디버거 중단 점 enter image description here

enter image description here은 텍스트 색상 값 만 표시 색상 변화가 발생하지 않습니다 변화를 보여 결과. 내가 제대로 질문을 이해하면

답변

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

글쎄, 나는 당신이'TextView'에'chron'을 던지고'Chronometer'에 던져 넣는 것을 봅니다. 이것은 문제의 원인이 아니지만 '크로노 미터'는 'TextView'를 확장하므로 '크로노 미터'에 직접 캐스팅 할 수 있습니다. 문제 자체에 대해 LogCat에서 뭐라고 말합니까? 리스너에서 중단 점을 설정하여 제대로 호출되었는지 확인 했습니까? – Shlublu

+0

LogCat 결과를 질문에 추가했습니다. 중단 점을 설정하는 방법을 모르겠다. 그것에 대해 읽었고 곧 주석을 추가 할 것이다. 캐스팅 제안을 구현합니다. –