2016-09-01 13 views
-1

Googleのチュートリアルで自分のAndroidアプリ用のカスタムツールバーを作成しましたが、自分のコードがチュートリアルと同じように思えてもツールバーに余白があります。ここでツールバーからマージンを削除する

Margin at my toolbar

layout.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" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.gruber.jakub.personalscheduler.MainActivity"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/my_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     android:paddingLeft="0dp" 
     android:elevation="4dp" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/app_name" 
     android:textSize="30sp" 
     android:layout_centerHorizontal="true" 
     android:layout_above="@+id/button" 
     android:layout_marginBottom="60dp"/> 

    <Button 
     android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="10dp" 
     android:text="@string/button1" 
     android:layout_centerInParent="true" /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:src="@android:drawable/ic_menu_today" 
     android:elevation="4dp" /> 

</RelativeLayout> 

と私ののstyles.xml

<resources> 

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 

    <!--Action bar style--> 
    <item name="android:actionBarStyle">@style/ActionBarTheme</item> 
</style> 

<style name="ActionBarTheme" parent="Widget.AppCompat.ActionBar"> 
    <item name="android:paddingLeft">0dp</item> 
    <item name="android:paddingRight">0dp</item> 
    <item name="android:paddingTop">0dp</item> 
    <item name="android:paddingBottom">0dp</item> 
</style> 

です私はlayout.xmlのandroid:padding...プロパティを変更したければ、私が望むようにしていますが、他のすべての要素に追加のプロパティを追加する必要があるため、これはやりたいことではありません。

+0

あなたは相対レイアウトにパディングを追加しています。そのパディングを削除するとうまくいくでしょう。 –

答えて

2

単にあなたのコンテナを見てみましょう:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.gruber.jakub.personalscheduler.MainActivity"> 

あなたはすべての場所でパディングを持って! :

android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 

これらは余白です。それらを削除しても問題ありません。チュートリアルを始めることをお勧めします。

+0

残念ながら、私はStackoverflowでここにコピーし、内容をチェックしませんでした。もちろん、マージン定数によるパディングを定義するのはナンセンスです。ありがとうございました。 –

+0

実際、定数を使ってパディングを定義するのは良いことです。問題は、あなたの "AcitivyLayout"でパディングを使用していることです...今日、あなたのコンテンツレイアウトからAcitivtyレイアウトを分離することをお勧めします。 Acitivty Layoutでは、ツールバー、引き出し、タブなどを配置する必要があります。コンテンツには、コピーしたパディングをコンテンツに貼り付けるだけです。 – Adley

+0

@Adley、あなたは多分それのいくつかの例を持っていますか? –

1

解決策は非常に簡単です。まず、親RelativeLayoutのパディング定義を削除する必要があります。そして、toobar以外のビューの残りの部分でこれらのプロパティを必要とするので、新しいLinearLayout/RelativeLayoutを作成し、そこでプロパティを定義します。次のように

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.gruber.jakub.personalscheduler.MainActivity"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/my_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     android:paddingLeft="0dp" 
     android:elevation="4dp" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:paddingBottom="@dimen/activity_vertical_margin" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin"  
     android:orientation="vertical"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/app_name" 
      android:textSize="30sp" 
      android:layout_centerHorizontal="true" 
      android:layout_marginBottom="60dp"/> 

     <Button 
      android:id="@+id/button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="10dp" 
      android:text="@string/button1" 
      android:layout_centerInParent="true" /> 

     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:src="@android:drawable/ic_menu_today" 
      android:elevation="4dp" /> 
    </RelativeLayout> 
</RelativeLayout> 
関連する問題