を使用して子ビューを追加または削除することにより、子ビューを作成してアニメーション化されたトランジションを示す Google のこのビデオに出会いました。onClick
学習プロセスの一環として: コードを取得し、分解し、いくつかの変更を加えました (私はコピー アンド ペースト プログラマーではありません)。
私の質問は、作成時に子ビューに やその他のさまざまな要素をTextView
追加するにはどうすればよいですか?Button
(興味がある場合は、Google からプロジェクトをダウンロードしてください:完全なプロジェクト)
これが私の活動で私が持っているものです:
/**
* Custom view painted with a random background color and two different sizes which are
* toggled between due to user interaction.
*/
public class ColoredView extends View {
private boolean mExpanded = false;
private LinearLayout.LayoutParams mCompressedParams = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, 50);
private LinearLayout.LayoutParams mExpandedParams = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, 200);
private ColoredView(Context context) {
super(context);
int red = (int)(Math.random() * 128 + 127);
int green = (int)(Math.random() * 128 + 127);
int blue = (int)(Math.random() * 128 + 127);
int color = 0xff << 24 | (red << 16) |
(green << 8) | blue;
setBackgroundColor(color);
setLayoutParams(mCompressedParams);
setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Size changes will cause a LayoutTransition animation if the CHANGING transition is enabled
setLayoutParams(mExpanded ? mCompressedParams : mExpandedParams);
mExpanded = !mExpanded;
requestLayout();
}
});
}
}
onCreate
アニメーションを表示する方法にもこれがあります
LayoutTransition transition = eventContainer.getLayoutTransition();
transition.enableTransitionType(LayoutTransition.CHANGING);
これは、LinearLayout
すべての子ビューが作成される XML です。
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:id="@+id/eventContainer">
</LinearLayout>
ボタンまたは edittext を linearlayout に追加すると、まったく新しいビューとして扱われ、1 つのオブジェクトのみが許可されます。その 1 つのレイアウトにオブジェクトの束を叩きつける方法はありますか?
また、ビューとレイアウトを取得するという概念についても少し混乱していcontext
ます...おそらく、ここのどこかで誤用したのでしょう。