アクティビティライフサイクルビューのレイアウトがいつ開始されるのか、またはビューグループがレイアウトの時間を決定するときに、私は思っています。アクティビティレイアウトのビューはいつですか
は、私はこのような設定クラスおよび活性を持っている - >
public class MainActivity extends AppCompatActivity
{
protected void onCreate(Bundle savedInstanceState)
{
Log.i("i", "on Create");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myStack = (myStack) findViewById(R.id.myStack);
myStack.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener()
{
@Override
public void onGlobalLayout()
{
Log.i("i", "listener detected Layout");
}
}
myStackAdapter adapter = new myStackAdapter(dataset);
myStack.setAdapter(adapter);
}
protected void onStart()
{
Log.i("i", "on Start");
super.onStart();
}
}
public class myStack extends ViewGroup
{
public myStack(Context context, AttributeSet attrs, int defStyleAttr)
{
super(context, attrs, defStyleAttr);
initialize();
}
public void initialize()
{
Log.i("i", "initialize called");
}
public void onLayout(boolean changed, int l, int t, int r, int b)
{
Log.i("i", "on Layout");
if (adapter == null)
{
Log.i("i", "adapter is null");
return;
}
for (conditions)
{
addNextView();
}
}
public void setAdapter(Adapter adapter)
{
Log.i("i", "adapter set");
this.adapter = adapter;
}
- と呼ばれる初期
- アダプタセットレイアウト 上
編集:追加c 出力は-on Create、-inapterialize、-onset、-on start、-on Layout、-listenerの検出済みレイアウトです。
ただし、これはsetAdapterが呼び出された後にのみonLayoutが呼び出されることを意味しますMainActivityは、私のアダプタがデフォルトでnullであるためです。だから私はonLayoutが初めてトリガされたのかと思います。 onCreateがMainActivityで終了したのは(たぶんonStart中に)ですか?そうでなければ、onLayout(onMeasureに続く)がmyStackをインスタンス化するときに最初に呼び出されないことがある他の理由があります。
です。 –
@ Zamronyしかし、そうであれば、出力は "layout - > adapterはnull - > initialize called - > adapter set"になりませんか? –
[onResume()のビューでgetWidth()を呼び出すのがなぜ0ですか?](https://stackoverflow.com/q/22972022/3290339) – Onik