我正在使用Android Studio生成的滚动活动。像这样:
它在XML中使用@include
标签来加载活动的内容。
我需要将此NestedScrollView
中的内容更改为其他内容。所以我一直在用这个:
LayoutInflater inflater =
(LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
progressContent = inflater.inflate(R.layout.content_progress, null);
scrollView.removeView(normalContent);
scrollView.addView(progressContent);
它确实有效,但是它没有正确使用progressContent的ConstraintLayout
,它忽略了所有偏差值,仅保留了硬设置的边距和填充。
在这个问题中,人们建议使用“ setContentView”,但是由于我只需要更改内部内容,而不是整个布局,所以这不是正确的解决方案:
How to set layout dynamically in android
在此建议使用ViewStubs
代替@include
:
How can I programmatically include layout in Android?
但这只会导致CollapsingToolbarLayout
完全损坏,无论如何,第二个视图的布局参数都将被丢弃。
正确的方法是什么?