gpt4 book ai didi

java - ImageView在滑动面板中消失

转载 作者:行者123 更新时间:2023-12-01 11:57:40 25 4
gpt4 key购买 nike

我有一个问题。我有 ViewPager 与 3 个 fragment (页面)。在第一个 fragment 中,我有向上滑动的面板。我使用了 GitHub 上的这个库。点击here 。在该滑动面板的 TitleBar 中,我有 ImageView,如下图所示。当用户打开或关闭滑动面板时,ImageView 会发生变化。

enter image description here

我的问题:当我更改 fragment (移动到另一页)并返回第一页时,ImageVIew 消失。这是什么原因?!

Fragment1.java:(setPanelSlideListener 位于 onViewCreated 方法中,该方法在创建 View 时立即调用...)

mSlidingUpPanelLayout.setPanelSlideListener(new SlidingUpPanelLayout.PanelSlideListener() {
@Override
public void onPanelSlide(View panel, float slideOffset) {
Log.i(TAG, "onPanelSlide, offset " + slideOffset);
}

@Override
public void onPanelCollapsed(View panel) {
Log.i(TAG, "onPanelCollapsed");
mImageView.setBackgroundResource(R.drawable.icon_up);
}

@Override
public void onPanelExpanded(View panel) {
Log.i(TAG, "onPanelExpanded");
mImageView.setBackgroundResource(R.drawable.icon_down);
fab.setColorPressed(getResources().getColor(R.color.fab_up_pressed));
}

@Override
public void onPanelAnchored(View panel) {
Log.i(TAG, "onPanelAnchored");
}

@Override
public void onPanelHidden(View panel) {
Log.i(TAG, "onPanelHidden");
}

@Override
public void onPanelHiddenExecuted(View panel, Interpolator interpolator, int duration) {
Log.i(TAG, "onPanelHiddenExecuted");
}

@Override
public void onPanelShownExecuted(View panel, Interpolator interpolator, int duration) {
Log.i(TAG, "onPanelShownExecuted");
mImageView.setBackgroundResource(R.drawable.icon_up);
}

@Override
public void onPanelExpandedStateY(View panel, boolean reached) {
Log.i(TAG, "onPanelExpandedStateY" + (reached ? "reached" : "left"));
}

@Override
public void onPanelCollapsedStateY(View panel, boolean reached) {
Log.i(TAG, "onPanelCollapsedStateY" + (reached ? "reached" : "left"));
if (reached) {
fab.setColorPressed(getResources().getColor(R.color.fab_pressed));
mTextView.setTextColor(Color.parseColor("#FFFFFF"));
}else{
fab.setColorPressed(getResources().getColor(R.color.fab_up_pressed));
mTextView.setTextColor(Color.parseColor("#FFFFFF"));
}
}

@Override
public void onPanelLayout(View panel, SlidingUpPanelLayout.PanelState state) {
if(state == SlidingUpPanelLayout.PanelState.COLLAPSED){
titleBar.setBackgroundColor(Color.parseColor("#03A9F4"));
fab.setColorNormal(getResources().getColor(R.color.fab_primary));
fab.setColorPressed(getResources().getColor(R.color.fab_pressed));
mTextView.setTextColor(Color.parseColor("#FFFFFF"));
mImageView.setBackgroundResource(R.drawable.icon_up);
}
else if (state == SlidingUpPanelLayout.PanelState.EXPANDED || state == SlidingUpPanelLayout.PanelState.ANCHORED){
titleBar.setBackgroundColor(Color.parseColor("#ffff9431"));
fab.setColorNormal(getResources().getColor(R.color.fab_up_primary));
fab.setColorPressed(getResources().getColor(R.color.fab_up_pressed));
mTextView.setTextColor(Color.parseColor("#FFFFFF"));
mImageView.setBackgroundResource(R.drawable.icon_down);
}
}
});

感谢您的帮助!需要任何帮助!

最佳答案

我在许多应用程序中使用了 umano 库。您是否尝试保存其状态?

请添加以下代码,该代码在您从另一个 fragment 返回时保存了您的状态。

@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean(SAVED_STATE_ACTION_BAR_HIDDEN,
mLayout.isExpanded());
}

更新

public static final String SAVED_STATE_ACTION_BAR_HIDDEN = "saved_state_action_bar_hidden";

而不是 isExpanded() ,可能是isPanelExpanded()isPaneExpanded()根据您使用的库。

请更新该方法并让我知道。

如果它没有解决您的问题,请告诉我。

我很愿意帮助你。享受编码...:)

关于java - ImageView在滑动面板中消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28304425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com