내 onCreate()
에서 XML로보기를 부 풀릴 수 있습니다.Android의 다른보기에서 다른보기를 팽창시키는 방법
loadingScreen = (RelativeLayout) findViewById(R.id.loadingScreen);
하지만 다른 뷰에서 어떻게 할 수 있습니까? GONE
에서 VISIBLE
으로 표시 여부를 설정하여 로딩 화면을 불러 오려고 시도했지만 내 glSurfaceView
내 onCreate()
에서 XML로보기를 부 풀릴 수 있습니다.Android의 다른보기에서 다른보기를 팽창시키는 방법
loadingScreen = (RelativeLayout) findViewById(R.id.loadingScreen);
하지만 다른 뷰에서 어떻게 할 수 있습니까? GONE
에서 VISIBLE
으로 표시 여부를 설정하여 로딩 화면을 불러 오려고 시도했지만 내 glSurfaceView
가 :
여기LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout myRoot = new LinearLayout(context);
View itemView = inflater.inflate(R.layout.layout_details, myRoot);
당신이 먼저 새의 LinearLayout을 만든 다음 당신은 단지 버튼의 가시성을 설정할 수 있습니다 그런 다음 R.layout.layout_details ID를 사용하여 레이아웃을 펼칩니다. inflate 메소드는 myRoot 뷰를 리턴한다.
에서이 작업을 수행하는 방법을 알아낼하지 않습니다 존재하여 현재 Layout
또는 현재 View
(현재 사용자의 Activity
콘텐츠)이지만 (현재 Activity
)을 사용하여 다른 XML
레이아웃에서 새 View
을 만들 수 있습니다.
Activity
내용, 새로운
View
을 추가 할 수 있습니다
, 그건 당신도 Dialog
로 표시하거나 View
을 만든 다음에 루트 레이아웃에 추가하여, "로딩 화면"으로 언급 무엇 당신의 Activity
나는 내가 실제로 팽창하지 당신에게
그게 도움이되기를 바랍니다. Inflating은 XML 레이아웃 파일을 구문 분석하고 그 중 View 및 ViewGroup 클래스 인스턴스의 구조를 만듭니다 (예 : setContentView()
이 백그라운드에서이 작업을 수행함).
XML 레이아웃 파일에서 정의한 코드의 뷰에 대한 참조를 얻는 것입니다. GLSurfaceView
의 공개 설정을 변경하려면 위에 설명한 것처럼 참조해야합니다. 그러나보기 (이 경우 GLSurfaceView
)는 레이아웃 파일에 정의되어야합니다.
참조 후 GLSurfaceView.setVisibility()를 호출하여 가시성을 변경해야합니다. 당신이 원하는 무슨에 따라, View.INVISIBLE
또는 View.GONE
중 하나
GLSurfaceView glsurface = (GLSurfaceView) findViewById(R.id.myglsurfaceid);
glsurface.setVisibility(View.VISIBLE);
물론 당신이 사용할 수 있습니다
다음은 예입니다. 당신이 (예 RelativeLayout
으로) 레이아웃을 참조하는 경우
, 당신은 당신의 RelativeLayout의 인스턴스의)합니다 (findViewById를 함께이 레이아웃의 아이를 찾을 수 있습니다 :
RelativeLayour rl = (RelativeLayout) findViewById(R.id.mylayout);
(Button) mybutton = (Button) rl.findViewById(R.id.mybutton);
그러나 그게 보통이 켜지지 없다 (적어도 때를 findViewById()는 하위 레이아웃에서도 표시되는 모든 뷰를 찾습니다. UI 구조에 중복 ID가있는 경우에만 사용해야하며 특정보기를 찾을 위치를 구체적으로 지정해야합니다.
당신이 glSurfaceView 객체가 있고 그 중 하나 내부의 뷰를 잡고 싶어 치죠 :
는 내가 제대로 싶어 무엇을 이해합니다. 정상적인보기를 위해했던 것과 똑같은 일을 할 것입니다. 버튼을 말해 보겠습니다.
Button button = (Button) glSurfaceView.findViewById(R.id.buttonid);
다른 의미가 있다면 의견에 남겨주세요.
편집 : 당신이 코드는 다음과 같은 레이아웃을 팽창하려는 경우
button.setVisibility(Button.GONE)
이유있는 LinearLayout : 여기
은 위해 LayoutInflater에 대한 튜토리얼? – MatheusJardimB다른 레이아웃에서도 사용할 수 있습니다. –