问题
My problem is similar to above Image
I am getting this issue in Nexus Devices. I added margin from bottom by getting Bottom Navigation Bar height. But my application is showing extra margin from the bottom on a tablet.
I do not want to change anything in my style file.
Code:-
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_coordinator_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/clubhouse_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/clubhouse_toolbar_main"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:minHeight="?attr/actionBarSize"
android:background="@android:color/holo_red_dark"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:layout_scrollFlags="scroll|enterAlways">
<TextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textAppearance="@android:style/TextAppearance.Holo.Medium.Inverse"
android:gravity="center"
android:singleLine="true"
android:maxLines="1"
android:paddingLeft="2dp"
android:ellipsize="end"
android:textColor="@color/white"
/>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
<ImageView
android:id="@+id/iv_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_ab_arrowup"/>
<FrameLayout
android:id="@+id/drop_down_overlay_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:layout_marginTop="60dp"
android:fitsSystemWindows="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
The drop_down_overlay_container in this framelayout is where I am showing my Fragment.
回答1:
Ok the problem is the following, the cardview match parent height is actually the full screen height with top bar. An very easy fix for this is to add:
android:layout_marginBottom="?attr/actionBarSize"
like this:
<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:layout_marginBottom="?attr/actionBarSize"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.example.jburg.empty.Main22Activity"
tools:showIn="@layout/activity_main22"
android:background="@color/colorAccent"/>
This works on my emulator nexus 10 tablet. Let me know if this helps you otherwise I'll keep searching :)
回答2:
did you try this
Bottom soft NavigationBar overlaps my ListView
The Only problem is that you mention you don't want to change your style file ( didn't mention why! ) and that user achieve your result by changing style file.
回答3:
Try adding this line android:fitsSystemWindows="true"
to the CoordinatorLayout.
回答4:
try to add this code in imageview.
android:layout_below="@+id/clubhouse_toolbar_main"
回答5:
Just a suggestion :
You could add a dummy button with visibility="invisible"(not "gone"). The default height of a button is almost same as that of the Navigation Bar. So even if the Navigation bar is over the button, your important data will be fully visible(Above the navigation bar). And you don't have to think about the button being seen.
In your case i'm assuming that you have some scrollable view in your Fragment. So you should put the button inside your fragment xml under your scrolllable view(listview, recyclerview ...) or at the bottom of your fragment xml.
回答6:
just add bottom padding same as height of bottom navigation bar in RecyclerView.
回答7:
It looks like something related to SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION. Make sure that your activity does not have this flag set in setSystemUiVisibility
来源:https://stackoverflow.com/questions/36810873/navbar-overlapping-last-listview-item-android