Java 折叠工具栏布局设置滚动标志输入\u始终\u以编程方式忽略折叠
我正在以编程方式设置collapingToolbarLayout滚动标志&第一次效果很好 -第一段: 在折叠工具栏中显示图像视图(标记:滚动、滚动、输入、输入、折叠)工作正常。然后用按钮转到第二个片段 -第二段: 移除imageView(高度=0dp)并更改折叠工具栏(标记:SCROLL\u FLAG\u SCROLL,SCROLL\u FLAG\u ENTER\u ALWAYS)工作正常。然后按下返回键返回到第一个片段 -第一段: “SCROLL\u flag\u ENTER\u ALWAYS”标志不再起作用,如果向下滚动足够多,则折叠工具栏将始终滚动到底部 我正在onDestinationChanged(导航控制器)中进行更改 我尝试的是: -在XML中设置标志(滚动标志、滚动标志、输入标志、输入标志、折叠标志),只需更改imageView可见性状态Visible/Gone,同样的问题 一些代码:Java 折叠工具栏布局设置滚动标志输入\u始终\u以编程方式忽略折叠,java,android,android-collapsingtoolbarlayout,Java,Android,Android Collapsingtoolbarlayout,我正在以编程方式设置collapingToolbarLayout滚动标志&第一次效果很好 -第一段: 在折叠工具栏中显示图像视图(标记:滚动、滚动、输入、输入、折叠)工作正常。然后用按钮转到第二个片段 -第二段: 移除imageView(高度=0dp)并更改折叠工具栏(标记:SCROLL\u FLAG\u SCROLL,SCROLL\u FLAG\u ENTER\u ALWAYS)工作正常。然后按下返回键返回到第一个片段 -第一段: “SCROLL\u flag\u ENTER\u ALWAYS
public void onDestinationChanged(@NonNull NavController controller, @NonNull NavDestination destination, @Nullable Bundle arguments) {
appBarLayout.setExpanded(true);
if (destination.getId() == R.id.firstFragment) {
toolbarChanges();
collapsingToolbarChanges();
} else if (destination.getId() == R.id.secondFragment) {
toolbarChangesReset();
collapsingToolbarChangesReset();
}
}
private void toolbarChanges() {
ViewGroup.LayoutParams toolbarImgParams = imgToolbarBackground.getLayoutParams();
final float scale = getResources().getDisplayMetrics().density;
int height = (int) (120 * scale + 0.5f);
toolbarImgParams.height = height;
imgToolbarBackground.setLayoutParams(toolbarImgParams);
}
private void toolbarChangesReset() {
ViewGroup.LayoutParams toolbarImgParams = imgToolbarBackground.getLayoutParams();
toolbarImgParams.height = 0;
imgToolbarBackground.setLayoutParams(toolbarImgParams);
}
private void collapsingToolbarChanges() {
AppBarLayout.LayoutParams collapsingToolbarPrams = (AppBarLayout.LayoutParams) collapsingToolbar.getLayoutParams();
collapsingToolbarPrams.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL |
AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS |
AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS_COLLAPSED);
collapsingToolbar.setLayoutParams(collapsingToolbarPrams);
}
private void collapsingToolbarChangesReset() {
AppBarLayout.LayoutParams collapsingToolbarPrams = (AppBarLayout.LayoutParams) collapsingToolbar.getLayoutParams();
collapsingToolbarPrams.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL |
AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);
collapsingToolbar.setLayoutParams(collapsingToolbarPrams);
}