2012-02-07 5 views
1

나는이 시간들과 함께 싸우고 있으며 나는 무슨 일이 일어나고 있는지 알 수 없다. 몇 가지 탭이있는 앱이 있습니다. 이 탭은 TabGroupActivity에 의해 관리됩니다. 이 탭 중 하나에서 투명한 활동을 시작해야합니다. 정상적으로 (startActivity로) 시작한 경우에는보기에는 좋아 보이지만, 분명히 탭 바를 클릭 할 수는 없습니다. 투명성 때문에 볼 수 있지만 도달 할 수는 없습니다. 따라서 탭 막대를 없애려면 특정 탭 내에서 활동을 서핑하도록 정의 된 메서드 인 "startChildActivity"를 사용해야합니다. 하지만 그렇게하면 활동이 표시되지만 투명하게 보이지 않고 배경이 검은 색입니다. 나는 모든 것을 시도했지만 어떻게 고칠 수 있는지 알 수 없습니다. 다음은 문제가 해결 될 수 있다고 생각하는 코드입니다. 활동과 하위 작업을 시작하는 것의 유일한 차이이기 때문입니다. 투명 "PreshowActivity"열 하나입니다해야검은 색 배경을 가진 투명한 자식 활동

public class PreShowTabGroupActivity extends TabGroupActivity { 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      startChildActivity("PreshowActivity", new Intent(this, PreshowActivity.class)); 
     } 
    } 

활동 : 나는 모든 탭을로드 "메인"활동 내부

는 각 탭은 다음과 같이보고 관련 활동이있다.

다음은 TabGroupActivity 클래스의 startChildActivity 메서드입니다. 그것은 행운이없이 투명하게하려고 시도합니다.

public void startChildActivity(String Id, Intent intent) { 
    Window window = getLocalActivityManager().startActivity(Id,intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); 

    if (window != null) { 

     //window.set 
     mIdList.add(Id); 
     navController.notifyActivityChange();   
     setContentView(window.getDecorView()); 
     window.getAttributes().alpha = 0; 
     window.getDecorView().setBackgroundColor(Color.TRANSPARENT); 
     window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 

    } 
} 

이상한 것은입니다 내가, 그 색의 배경 변경 (RED 또는 무엇이든 같은) 컬러 배경을 넣어합니다. 하지만 투명하게 구성하면 배경이 검은 색이됩니다.

내 매니페스트에서 나는 투명하고 반투명 한 테마를 시도했지만 운이 없었습니다.

내가 도와 주시면 감사하겠습니다.

감사합니다.

+0

검은 색 배경이 있고 실제로 투명하기 때문에 그 배경 뒤에 검은 색 배경이 보입니까? – AJcodez

+0

"startChildActivity"메서드에서 다음과 같은 테스트를했기 때문에 그랬지만 실제로는 그렇지 않다고 확신합니다. decorView 배경을 빨강으로 설정 한 다음 창 배경을 투명하게 설정하고 대신 RED를 표시합니다. BLACK 배경을 보여줍니다. – DiamondGerace

답변

0

"추측"이란 단어를 사용하는 것에 대해 유감스럽게 생각하지만, 이것은 교육받은 "추측"과 더 비슷합니다. 검은 배경이 투명하게 표시되는 이유를 알 수없는 비슷한 문제가있었습니다. 예를 들어 그 검은 색을 RED로 변경했다면 붉은 색을 표시합니다. 이것은 format이라는 창 속성과 관련이 있습니다. 이 같은이 진열창의 속성을 변경하는 경우 :.

window.getAttributes() 형식 = PixelFormat.TRANSLUCENT;

이것은 검은 색 배경이 실제로 투명하다는 것을 의미합니다. 자, 귀하의 질문에 관해서는 "교육 추측"은 startAildivity가 다른 속성 집합 (아마도 TRANSLUCENT)이있는 창을 생성하는 반면 startChildActivity는 부모 창의 창의 속성을 사용한다는 것입니다.

관련 문제