类似这样的问题有很多,但它们都是在返回根布局之前在onCreateView()
中添加视图。
请注意,这是一个片段,这就是没有onCreateView()
就无法更新UI的原因:
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
//RelativeLayout Setup
RelativeLayout relativeLayout = new RelativeLayout(getActivity());
relativeLayout.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.MATCH_PARENT));
//ImageView Setup
ImageView imageView = new ImageView(getActivity());
//setting image resource
imageView.setImageResource(R.drawable.lit);
//setting image position
imageView.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.WRAP_CONTENT));
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.BELOW, R.id.button);
imageView.setLayoutParams(params);
//adding view to layout
relativeLayout.addView(imageView);
break;
}
}
在这里我得到了一个布局的示例并对其进行了修改。但是,我无法将修改后的片段布局应用到应用程序UI中。在片段UI修改后,我如何更新应用程序界面?
谢谢你的时间。
2条答案
按热度按时间w41d8nur1#
我会这样做:
1.在我的fragment的视图xml中,有一个名为
R.id.container
的ViewGroup来保存您的ImageViews。1.有一个单独的xml只包含ImageView。这样,您就不必进行任何编程布局。
然后在您的
onClick
或任何需要添加ImageView的地方:wa7juj8i2#
您刚刚创建了一个视图,但尚未添加到片段的布局。
方法
onCreateView()
将返回此片段的容器,保存此示例(例如:(单位:ViewGroup container
)当你创建一个视图时,比如你在
onClick()
中的RelativeLayout,把它添加到容器中,你的UI就会更新。container.addView(relativeLayout);
示例:
布局
example_fragment
只是一个线性布局