要实现Android工具栏不透明且不覆盖活动的效果,可以使用以下代码示例来解决:
首先,在您的活动布局文件中,将您的工具栏添加到一个AppBarLayout中,如下所示:
这里,AppBarLayout包含一个Toolbar,并且使用layout_scrollFlags属性来指定滚动行为。
然后,在您的活动代码中,设置工具栏的透明度并禁用活动的状态栏遮挡,如下所示:
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
public class MainActivity extends AppCompatActivity {
private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
// 设置工具栏透明度
toolbar.getBackground().setAlpha(0);
// 禁用状态栏遮挡
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}
}
在这段代码中,我们首先通过findViewById获取到Toolbar实例,然后使用getBackground().setAlpha(0)来设置工具栏的透明度为0。接下来,我们使用getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)来禁用状态栏的遮挡,并使用getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)来确保活动布局正常显示。
通过以上代码示例,您应该能够实现一个不透明的Android工具栏,并且不会覆盖活动内容。
上一篇:Android工具栏不会显示
下一篇:Android工具栏菜单项背景