Open autismbug opened 7 years ago
如果是 demo 正常的话,建议在 demo 的基础上改改看,应该是你使用的姿势问题,具体可以贴图和给出代码
布局部分代码:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorBackGround"
android:orientation="vertical"
tools:context="cn.findsports.xiangdong.ui.activity.bookvenue.SearchVenueActivity">
<ImageView
android:id="@+id/sportTypeBackground_image"
android:layout_width="match_parent"
android:layout_height="155dp"
android:scaleType="centerCrop"
android:src="@drawable/basketball_background"/>
<LinearLayout
android:id="@+id/viewNeedOffset"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
Activity部分代码:
@BindView(R.id.viewNeedOffset)
LinearLayout mViewNeedOffset;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_search_venue);
ButterKnife.bind(this);
StatusBarUtil.setTranslucentForImageView(this,0,mViewNeedOffset);
结果
你把 NeedOffsetView 参数传 null 试试
传 null 的话,下面整体上移了,状态栏还是黑的
你是不是 BaseActivity 中设置了什么,建议还是看看 demo 的代码
public class MainActivity extends BaseActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
loadRootFragment(R.id.fl_container, MainFragment.newInstance());
}
// 可以监听该Activity下的所有Fragment的18个 生命周期方法
registerFragmentLifecycleCallbacks(new FragmentLifecycleCallbacks(){
});
}
@Override
public void onBackPressedSupport() {
// 对于 4个类别的主Fragment内的回退back逻辑,已经在其onBackPressedSupport里各自处理了
super.onBackPressedSupport();
}
@Override
public FragmentAnimator onCreateFragmentAnimator() {
// 设置横向(和安卓4.x动画相同)
return new DefaultHorizontalAnimator();
}
@Override
protected void setStatusBar() {
StatusBarUtil.setTranslucentForImageViewInFragment(MainActivity.this, null);
}
} 这样也出现布局上移,求教
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
进来是默认的颜色 需要你在设置它透明色的时候加上这两句代码
StatusBarUtil.setTransparentForImageView 本质就是将整体布局向上偏移了一个状态栏的高度,然后你需要将有些布局再往下偏移状态栏的高度,也就是第二个参数
大大,你好! 1.下载的 demo 中 Set For ImageView 没问题,状态栏透明。 2.在自己项目中,完全按照 demo sample 中代码操作。 外层LinearLayout,里面 ImageView,下面LinearLayout,然后在 Activity中调用StatusBarUtil.setTransparentForImageView(this, mViewNeedOffset); 或者StatusBarUtil.setTranslucentForImageView(this,0,mViewNeedOffset); 只是感觉图片向上延伸了一部分,但是状态栏没有透明。 3.用小米5s 和 5.0系统模拟器,测试都是同样效果。 4.是不是还有什么需要注意的地方?求解答