gpt4 book ai didi

android - 在滚动 android 上更改工具栏 alpha

转载 作者:行者123 更新时间:2023-11-29 01:16:55 25 4
gpt4 key购买 nike

我想实现类似于 wikipedia 和 netflix 应用程序的效果,其中工具栏在详细信息 Activity 中是透明的,但会随着用户向下滚动内容而淡入。工具栏的菜单项始终可见。

这是我的布局文件:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">

<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize">

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"/>

</android.support.design.widget.AppBarLayout>



<android.support.v4.widget.NestedScrollView
android:id="@+id/detail_view_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:fitsSystemWindows="true"/>

</android.support.design.widget.CoordinatorLayout>

Activity 内容使用 fragment 事务放置在 NestedScrollView 中。

这是我的详细信息 Activity :

public class DetailActivity extends SearchBaseActivity {

private static final String RESOURCE = "resource";

@BindView(R.id.detail_view_container)
NestedScrollView mContainer;
@BindView(R.id.toolbar)
Toolbar mToolbar;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_detail);
ButterKnife.bind(this);

Media media = getIntent().getParcelableExtra(RESOURCE);

setSupportActionBar(mToolbar);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setTitle(null);
}

}

public static Intent getStartIntent(Context context, Media media) {
return new Intent(context, DetailActivity.class).putExtra(RESOURCE, media);
}
}

你能帮我解决这个问题吗?

谢谢!

最佳答案

我试图找到一种很好的方法来通过简单地使用 CoordinatorLayout 在滚动内容时获得从半透明到不透明状态栏的相同过渡,但到目前为止我还没有找到它。

我通过向 NestedScrollView 添加一个 scrolllistener 做了一个非常基本的实现:

NestedScrollView nsv = (NestedScrollView) findViewById(R.id.detail_view_container);
nsv.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
@Override
public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
int color = Color.parseColor("#FF2D2D2D"); // ideally a global variable
if (scrollY < 256) {
int alpha = (scrollY << 24) | (-1 >>> 8) ;
color &= (alpha);
}
toolbar.setBackgroundColor(color);
}
});

随着 NestedScrollView 上的 Y 滚动增加,此实现开始向工具栏添加不透明度。

关于android - 在滚动 android 上更改工具栏 alpha,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38941189/

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