laobie / StatusBarUtil

A util for setting status bar style on Android App.
http://t.cn/Rq746Kb
Apache License 2.0
8.82k stars 1.72k forks source link

Fragment 其中一个界面头部使用imageview,但是无法延伸至状态栏。 #30

Closed Swordce closed 7 years ago

Swordce commented 7 years ago

效果图: image

界面布局:

<?xml version="1.0" encoding="utf-8"?> <com.zhy.autolayout.AutoLinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">

<com.zhy.autolayout.AutoRelativeLayout
    android:layout_width="match_parent"
    android:layout_height="180dp"
    android:id="@+id/ll_img">

    <ImageView
        android:id="@+id/banner"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY"/>

    <com.zhy.autolayout.AutoRelativeLayout
        android:id="@+id/rl_off"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp">

        <com.zhy.autolayout.AutoLinearLayout
            android:id="@+id/manager_back"
            android:layout_width="90px"
            android:layout_height="70px"
            android:layout_alignParentTop="true"
            android:layout_alignParentStart="true"
            android:layout_marginStart="6dp"
            android:layout_marginTop="9dp">
            <ImageView
                android:layout_width="44px"
                android:layout_height="41px"
                android:src="@drawable/white_back"/>
        </com.zhy.autolayout.AutoLinearLayout>

        <TextView
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:singleLine="true"
            android:ellipsize="end"
            android:textColor="@color/white"
            android:id="@+id/text_event_name"
            android:textSize="36px"
            android:layout_alignTop="@+id/manager_back"
            android:layout_centerHorizontal="true"
            android:gravity="center"/>

    </com.zhy.autolayout.AutoRelativeLayout>

    <com.zhy.autolayout.AutoLinearLayout
        android:id="@+id/ll_manager1"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:background="#33ffffff">
        <com.zhy.autolayout.AutoLinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical">
            <TextView
                android:id="@+id/manager_participants"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="42px"
                android:textColor="@color/ff5c"
                android:gravity="center"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/participants"
                android:textColor="@color/white"
                android:textSize="24px"/>
        </com.zhy.autolayout.AutoLinearLayout>

        <com.zhy.autolayout.AutoLinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical">
            <TextView
                android:id="@+id/manager_income"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="42px"
                android:gravity="center"
                android:textColor="@color/ff5c"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/income"
                android:textColor="@color/white"
                android:textSize="24px"/>
        </com.zhy.autolayout.AutoLinearLayout>

        <com.zhy.autolayout.AutoLinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical">
            <TextView
                android:id="@+id/manager_checkin"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="42px"
                android:gravity="center"
                android:textColor="@color/ff5c"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/checkin"
                android:textColor="@color/white"
                android:textSize="24px"/>
        </com.zhy.autolayout.AutoLinearLayout>
    </com.zhy.autolayout.AutoLinearLayout>

</com.zhy.autolayout.AutoRelativeLayout>

<com.zhy.autolayout.AutoFrameLayout
    android:id="@+id/manager_framelayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="10dp"
    android:visibility="gone">
    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/manager_progress"
        android:layout_gravity="center"
        android:visibility="gone"/>
</com.zhy.autolayout.AutoFrameLayout>

<com.zhy.autolayout.AutoRelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10px">
    <ImageView
        android:layout_width="42px"
        android:layout_height="42px"
        android:src="@drawable/ticket"
        android:id="@+id/img_title_ticket"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="15px"
        android:layout_marginStart="15px" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="32px"
        android:text="门票"
        android:textColor="@color/black"
        android:id="@+id/title_ticket"
        android:layout_alignBottom="@+id/img_title_ticket"
        android:layout_toEndOf="@+id/img_title_ticket"
        android:layout_marginStart="10dp"
        android:gravity="center"
        android:layout_alignTop="@+id/img_title_ticket" />
    <View
        android:layout_width="match_parent"
        android:layout_height="4dp"
        android:background="@drawable/bg_shadow"
        android:layout_below="@+id/img_title_ticket"
        android:layout_alignParentStart="true"
        android:layout_marginTop="10dp"/>
</com.zhy.autolayout.AutoRelativeLayout>

<android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/manager_swiperefresh"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <ListView
        android:id="@+id/lv_ticket"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:cacheColorHint="@android:color/transparent"
        android:listSelector="@android:color/transparent"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp">
    </ListView>
</android.support.v4.widget.SwipeRefreshLayout>

</com.zhy.autolayout.AutoLinearLayout>

fragment调用: @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.ticket, container, false); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {

        StatusBarUtil.setTranslucentForImageView(getActivity(),0,(ImageView)view.findViewById(R.id.banner));
    }

    return view;
}
laobie commented 7 years ago

目前来说 Fragment 布局中的 ImageView 是没法做到的,只能将 Fragment 中的 ImageView 放到 activity 中,或者给 fragment 布局的容器设置 fitSystemWindow 为 false 试试

@Swordce

Swordce commented 7 years ago

好的,多谢猴哥 @laobie

laobie commented 7 years ago

@Swordce 我发现你这个用错了,不是传 imageview 进来的,等会我更新下,你再试试是不是好了

laobie commented 7 years ago

@Swordce 最新的版本中有示例代码,你可以看看了