fragment里面也在加载内容,加载完成之后在动态修改高度
时间: 2024-03-11 16:47:05 浏览: 24
如果你需要在Fragment里面加载内容,然后在内容加载完成后再动态修改高度,可以在Fragment中使用ViewTreeObserver来监听内容加载完成的事件。
以下是一个示例代码:
```
// 获取Fragment的布局参数
ViewGroup.LayoutParams layoutParams = getView().getLayoutParams();
// 获取Fragment的根View
View rootView = getView();
// 获取根View的ViewTreeObserver
ViewTreeObserver viewTreeObserver = rootView.getViewTreeObserver();
// 注册一个OnGlobalLayoutListener来监听布局完成的事件
viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// 在布局完成后,获取内容的高度
int contentHeight = rootView.findViewById(R.id.content_view).getHeight();
// 修改高度
layoutParams.height = contentHeight;
// 更新布局参数
rootView.setLayoutParams(layoutParams);
// 移除监听器,避免重复触发
rootView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
```
上述代码中,我们通过获取Fragment的根View,并注册一个OnGlobalLayoutListener来监听布局完成的事件。在事件触发后,我们可以获取到内容的高度,然后修改高度并更新布局参数。最后,我们需要移除监听器,避免重复触发。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)