私は、onCreate()
次のような方法で XML からビューを膨らませることができることを知っています。
loadingScreen = (RelativeLayout) findViewById(R.id.loadingScreen);
しかし、別の観点からこれを行うにはどうすればよいでしょうか。からの可視性を設定して読み込み画面を呼び出そうとしてGONE
いVISIBLE
ますが、私のからこれを行う方法を理解できないようですglSurfaceView
私は、onCreate()
次のような方法で XML からビューを膨らませることができることを知っています。
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 を作成し、次に ID R.layout.layout_details でレイアウトをインフレートします。その後、inflate メソッドは myRoot ビューを返します。
LayoutInflater に関するチュートリアルは次のとおりです。
それは実際には膨らんでいません。インフレートは、XML レイアウト ファイルを解析し、そこから View および ViewGroup クラス インスタンスの構造を作成するプロセスです (setContentView()
たとえば、バックグラウンドでこれを行います)。
ここで行うことは、XML レイアウト ファイルで定義したコード内のビューへの参照を取得することです。の可視性を変更するには、GLSurfaceView
上記のように参照する必要があります。ただし、ビュー (GLSurfaceView
この場合) はレイアウト ファイルで定義する必要があることに注意してください。
参照した後、 GLSurfaceView.setVisibility() を呼び出して可視性を変更する必要があります。
次に例を示します。
GLSurfaceView glsurface = (GLSurfaceView) findViewById(R.id.myglsurfaceid);
glsurface.setVisibility(View.VISIBLE);
もちろん、やりたいことに応じて、View.INVISIBLE
またはどちらかを使用できます。View.GONE
レイアウト ( などRelativeLayout
) を参照する場合、RelativeLayout インスタンスの findViewById() を使用して、このレイアウトの子を見つけることができます。
RelativeLayour rl = (RelativeLayout) findViewById(R.id.mylayout);
(Button) mybutton = (Button) rl.findViewById(R.id.mybutton);
ただし、アクティビティ findViewById() は、サブレイアウトであっても、表示されているすべてのビューを見つけるため、通常は必要ありません (少なくとも Android を使い始めたばかりの場合)。UI構造に重複したIDがあり(まだそのようなケースはありませんでした)、特定のビューを探す場所を指定したい場合にのみ使用する必要があります。
あなたが何をしたいのかを正しく理解していれば:
glSurfaceView オブジェクトがあり、その中にあるビューを取得したいとします。通常のビューで行ったのと同じことを行います。ボタンとしましょう:
Button button = (Button) glSurfaceView.findViewById(R.id.buttonid);
あなたが何か違うことを意味している場合は、コメントでお知らせください。
編集:そして、ボタンの可視性を設定することができます:
button.setVisibility(Button.GONE)
current 、または current 、(現在のコンテンツ) にView
存在しないへの参照を取得することはできませんが、 from currentを使用して、別のレイアウトから新しい を作成できます。Layout
View
Activity
View
XML
LayoutInflater
Activity
Activity
現在のコンテンツ、新しいを追加できます。これView
は、「ロード画面」として言及したものDialog
ですView
。Activity
私はあなたを助けたことを願っています