2016-09-16 2 views
0

Я застрял в проблеме, и я просмотрел весь интернет для решения, но для меня ничего не работает. Я добавил изображение в панель инструментов, но немного вправо. Он не выравнивается по центру, он немного сдвигается вправо. Когда я выровняю изображение влево, есть некоторая прокладка/зазор между изображением и левой стороной панели инструментов. Ниже мой XML-код:Android - Padding/Gap слева от детского макета панели инструментов

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.CoordinatorLayout 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:fitsSystemWindows="true" 
     tools:context=".NavigationDrawerHomeScreen.BaseActivity"> 

     <android.support.design.widget.AppBarLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:theme="@style/AppTheme.AppBarOverlay" 
      app:elevation="0dp"> 

      <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/toolbar_home_activity" 
       android:layout_width="match_parent" 
       android:layout_height="45dp" 
       android:contentInsetLeft="0dp" 
       android:contentInsetStart="0dp" 
       android:contentInsetStartWithNavigation="0dp" 
       android:minHeight="?attr/actionBarSize" 
       app:contentInsetLeft="0dp" 
       app:contentInsetStart="0dp" 
       app:contentInsetStartWithNavigation="0dp"> 

       <RelativeLayout 
        android:layout_width="match_parent" 
        android:layout_height="match_parent"> 

        <ImageView 
         android:id="@+id/logo_name" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_centerInParent="true" 
         android:src="@drawable/fixer_title_thick" /> 
       </RelativeLayout> 

       <android.support.v7.widget.SearchView 
        android:id="@+id/search_home" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true" 
        android:showAsAction="ifRoom" 
        android:visibility="gone"> 

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


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

     </android.support.design.widget.AppBarLayout> 

     <FrameLayout 

      android:id="@+id/container_layout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:src="@drawable/home_bg" /> 

     </FrameLayout> 

     <!--<TextView--> 
     <!--android:layout_width="wrap_content"--> 
     <!--android:layout_height="wrap_content"--> 
     <!--android:layout_centerInParent="true"--> 
     <!--android:text="this is base" />--> 

    </android.support.design.widget.CoordinatorLayout> 
</RelativeLayout> 

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:background="#2A2929" 
    android:backgroundTint="#2A2929" 
    android:fitsSystemWindows="true" 
    app:headerLayout="@layout/nav_header_home_customer" 
    app:itemTextAppearance="@style/NavDrawerTextStyle" 
    app:itemTextColor="#fff" 
    app:menu="@menu/activity_home_customer_drawer"> 

    <LinearLayout 
     android:id="@+id/footer" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_gravity="bottom" 
     android:clickable="true" 
     android:orientation="vertical"> 

     <!-- any addition stuff you want in yoour footer layout --> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" 
      android:layout_marginTop="50dp" 
      android:orientation="vertical"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Set Search Radius" 
       android:textColor="@color/white" /> 

      <RelativeLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="20dp" 
       android:clipChildren="false"> 

       <com.crystal.crystalrangeseekbar.widgets.CrystalSeekbar 
        android:id="@+id/rangeSeekbar1" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 

        app:bar_color="@color/blue" 
        app:left_thumb_color="@color/blue_dark" /> 

       <TextView 
        android:id="@+id/textMin1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_below="@id/rangeSeekbar1" 
        android:layout_marginBottom="10dp" 
        android:layout_marginLeft="10dp" 
        android:layout_marginStart="10dp" 
        android:layout_marginTop="5dp" 
        android:text="0" 
        android:textColor="@color/white" 
        android:textSize="16dp" /> 

       <TextView 
        android:id="@+id/textMax1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true" 
        android:layout_below="@id/rangeSeekbar1" 
        android:layout_marginEnd="10dp" 
        android:layout_marginRight="10dp" 
        android:layout_marginTop="5dp" 
        android:text="100" 
        android:textColor="@color/white" 
        android:textSize="16dp" /> 

      </RelativeLayout> 
     </LinearLayout> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="48dp" 
      android:background="#1E88E5"> 

      <TextView 
       android:id="@+id/logout_footer" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerVertical="true" 
       android:layout_marginBottom="20dp" 
       android:layout_marginLeft="16dp" 
       android:layout_marginRight="16dp" 
       android:drawableLeft="@drawable/ic_logout_white_24dp" 
       android:drawablePadding="32dp" 
       android:text="Logout" 
       android:textColor="#fff" 
       android:textSize="18sp" /> 
     </RelativeLayout> 
    </LinearLayout> 

</android.support.design.widget.NavigationView> 

Приложение: contentinset/андроид: contentinset решение работает для некоторых людей, но он не работает для меня.

вот изображение http://imgur.com/a/Vp2g6.

+0

Возможный дубликат [Удалить большое дополнение после значка гамбургера (меню) на панели инструментов Android?] (Http://stackoverflow.com/questions/38373481/remove-large-padding-after-hamburger-menu-icon-in- андроид-панель инструментов) –

+0

@MikeM. Я пробовал все эти решения, ни один из них не работает для меня – Tayyaba

+0

Чтобы быть уверенным, что мы говорим об одном и том же, вы должны разместить изображение своей проблемы и свой обновленный код/​​XML. Кроме того, вы должны, возможно, очистить и перестроить свой проект после внесения такого незначительного изменения в свой макет. –

ответ

2

У меня была такая же проблема, и я попробовал много вещей, как установка

app:contentInsetStart ="0dp" ; 

app:contentInsetStartWithNavigation = "0dp" ; 

Это не сработало. Я даже установил их отрицательное значение, но это не сработало. Я попытался добавить правое поле к моему дочернему виду, но уменьшил видимый размер дочернего представления вместо того, чтобы занимать это левое пространство. Так что, возможно, в этом пространстве недопустимы представления детей.

Итак, потратив некоторое время, я решил, что есть две возможности обхода этой проблемы, одна из них предпочтительнее другой, я бы не предпочел. Прежде всего позвольте мне сказать вам, кого я не предпочитаю:

Выборочная Реализация кнопки Up: Эта проблема возникает только тогда, когда в вашем Java класса для этой схемы вы установите эту панель в качестве ActionBar и вы

setDisplayHomeAsUpEnabled(true); 

Без этой команды эта проблема не существует. Итак, если вы не используете кнопку возврата по умолчанию и не реализуете ее самостоятельно, поставив изображениеView и обеспечив реализацию onClick, это должно работать нормально.

Сделайте ChildViews как довольно родным братом: Другой метод использует свойство панели инструментов, являющееся только другим представлением. Я предпочитаю этот метод, потому что с помощью этого метода вы можете использовать кнопку андроида по умолчанию. Единственное, что вам нужно сделать, - это не определять дочерние представления внутри панели инструментов, сделать дочерний вид и панель инструментов в качестве родных или близких друг к другу в линейной или относительной компоновке. Таким образом вы можете уменьшить левое пространство только до «wrap_content» на панели инструментов и использовать левое пространство в других дочерних представлениях. В моем приложении у меня даже была функциональность onClick на панели инструментов, которая теперь может быть выполнена, предоставляя эту функциональность родителям обоих макетов, то есть установите onClick на LinearLayout.

Хотя я до сих пор не знаю точной причины, по которой существует левое пространство, или есть способ его отключить, но это довольно чистый метод, чтобы обойти это.

Смежные вопросы