Android工具栏额外差距

时间:2016-05-07 13:15:24

标签: android android-layout android-xml android-toolbar

我已经看到了这个问题的答案,但它们都不适合我。在android中我在边距和工具栏之间有一个额外的间隙,所以它看起来不像一个动作栏。如何消除这种差距?activity_main image

toolbar.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar 
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"

android:layout_width="match_parent"
android:background="#FF7043"
android:elevation="4dp"
android:layout_height="?actionBarSize"

android:contentInsetLeft="0dp"
android:contentInsetStart="0dp"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
android:contentInsetRight="0dp"
android:contentInsetEnd="0dp"
app:contentInsetRight="0dp"
app:contentInsetEnd="0dp"

android:id="@+id/tool_bar">

</android.support.v7.widget.Toolbar>

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="#00E676"
tools:context="com.example.partha.customtitlebar.MainActivity">
<include
    android:id="@+id/tool_bar"
    layout="@layout/toolbar"


    ></include>


<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:id="@+id/textView"
    android:layout_below="@+id/tool_bar"
    android:layout_alignParentStart="true"
    android:layout_marginTop="55dp" />
</RelativeLayout>

2 个答案:

答案 0 :(得分:1)

如果你仔细观察,你会发现你已经在RelativeLayout的父母身上为所有四个边都应用了填充,即android:paddingBottom="@dimen/activity_vertical_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"

删除以下行将解决此问题:

{{1}}

答案 1 :(得分:0)

这是因为您已添加到父RelativeLayout ViewGroup的填充。

您有两个选择

     
  • 要么将填充设置为0dp,要么会丢失整个屏幕的填充
  •  
  • 或者将TextView嵌套在LinearLayout之类的另一个ViewGroup中,并将填充应用于LinearLayout而不是RelativeLayout。通过这个,您可以获得整个内容的填充,同时仍然确保Toolbar周围没有填充,这将使其适合屏幕,就像已弃用的ActionBar一样。

此示例说明了如何实现第二个选项          

android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00E676"
tools:context="com.example.partha.customtitlebar.MainActivity">
<include
android:id="@+id/tool_bar"
layout="@layout/toolbar">
</include>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/tool_bar"
android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:id="@+id/textView"
android:layout_below="@+id/tool_bar"
android:layout_alignParentStart="true"
android:layout_marginTop="55dp" />
</LinearLayout>
</RelativeLayout>