2015-07-20 201 views
-1

我正在嘗試使用工具欄製作底部欄並將其與父級底部對齊。這是它的外觀:Android工具欄佈局問題

Bottom Toolbar

但不知何故,在圖像中所提到的,他們是一個很大的空白,由於其佈局是不完全居中。爲什麼會發生?

bottom_tool_bar.xml

<android.support.v7.widget.Toolbar 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="@color/ColorPrimaryLight" 
android:elevation="4dp" 
android:layout_alignParentBottom="true" 
> 

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

    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:id="@+id/origin_select" 
     android:src="@mipmap/ic_action_play" 
     android:background="@drawable/feedback_background" 
     android:onClick="choose_origin_button" 
     /> 


    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:id="@+id/destination_select_select" 
     android:src="@mipmap/ic_action_stop" 
     android:background="@drawable/feedback_background" 
     android:onClick="choose_destination_button"/> 

    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:id="@+id/poi_select" 
     android:src="@mipmap/ic_action_pause" 
     android:background="@drawable/feedback_background" 
     android:onClick="choose_interest_button"/> 


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

爲有關活動的佈局文件:

<include 
    android:id="@+id/tool_bar" 
    layout="@layout/tool_bar" 
    > 
</include> 

<include 
    android:id="@+id/bottom_tool_bar" 
    layout="@layout/bottom_tool_bar"> 
</include> 

<fragment 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/plot_path_map" 
    android:layout_below="@+id/tool_bar" 
    android:layout_above="@+id/bottom_tool_bar" 
    android:name="com.google.android.gms.maps.MapFragment" 
    /> 
<Button 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:id="@+id/submit_button" 
    android:text="Submit" 
    android:textColor="#FFFFFF" 
    android:layout_centerHorizontal="true" 
    android:background="@drawable/feedback_background" 
    android:layout_centerVertical="true" 
    android:textSize="20sp" 
    android:layout_alignParentBottom="true" 
    android:visibility="invisible" 
    android:onClick="submit_button_click" 
    /> 
</RelativeLayout> 
+0

http://stackoverflow.com/questions/26455027/android-api-21-toolbar-padding –

+0

那麼,任何答案都適合你嗎? – commonSenseCode

回答

1

如果你想在工具欄放置在底部,這是你應該做的事情。

使用帶有alignParentBottom一個的LinearLayout =「真」

<RelativeLayout 
android:id="@+id/mainLyt" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<!-- Some layout things --> 

<ScrollView 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_above="@+id/bottomBar"> 

<!-- some scrolling content --> 
</ScrollView> 

<LinearLayout 
android:id="@+id/bottomBar" 
android:layout_height="wrap_content" 
android:layout_width="fill_parent" 
android:orientation="horizontal" 
android:layout_alignParentBottom="true"> 

<!-- Some Buttons --> 
</LinearLayout> 

</RelativeLayout> 

至於你提到的間距,我相信這是另一個問題,您可以使用您的ToolBar內的下列屬性進行修改。

app:contentInsetLeft="0dp" 
app:contentInsetStart="0dp" 
+0

它有點工作。現在左側的空間已經消失,佈局居中。然而,頂部和底部的空間仍然存在。任何解決方案? – Bluesir9

0

創建一個獨立的佈局文件並將其命名爲tool_bar.xml並確保LinearLayout中是你的根佈局。

然後在你的活動類型是:

<include 
    android:id="@+id/tool_bar" 
    layout="@layout/tool_bar" 
    ></include> 

就給出0.3weight到所有ImageViewslayout:widthlayout:heightwrap_content

+0

這已經是一個單獨的佈局文件,我將其包含在活動佈局文件中。您的更改沒有任何改進。 – Bluesir9

+0

在您發佈的xml中,您沒有包含任何佈局文件。如果你已經更新了XML,請編輯OP。 –

0

爲中心的意見,你有很多選擇的2是以下(我相信第二是最好的):

F首先在你的線性佈局中包含重量,我喜歡使用100,因爲這有助於我以百分比的方式進行思考,然後包含2個殘片framelayout,以便將圖像瀏覽推向水平中心,並通過使用像這樣的重量來保持響應特性:

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:weightSum="100" 
     android:orientation="horizontal" 
     > 
     <FrameLayout 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="30"/> 
     <ImageView 
      android:id="@+id/origin_select" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="13" 
      android:background="@drawable/feedback_background" 
      android:onClick="choose_origin_button" 
      android:src="@mipmap/ic_action_play" 
      /> 


     <ImageView 
      android:id="@+id/destination_select_select" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="13" 
      android:background="@drawable/feedback_background" 
      android:onClick="choose_destination_button" 
      android:src="@mipmap/ic_action_stop"/> 

     <ImageView 
      android:id="@+id/poi_select" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="13" 
      android:background="@drawable/feedback_background" 
      android:onClick="choose_interest_button" 
      android:src="@mipmap/ic_action_pause"/> 
     <FrameLayout 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="30"/> 

    </LinearLayout> 

正如你可以看到兩個FrameLayout裏什麼都沒有,但他們幫助你把你的其他ImageViews的中心,他們既給你的空間,60%的人使用,讓你只是一個40%的ImageViews因此它們各有13% 。

在另一方面,你可以使用的RelativeLayout爲您的父元素,而不是的LinearLayout和位置ImageView的ID爲:destination_select_select居中對齊於母公司的水平和垂直,然後在一個在中心側面的另兩個imageviews定位中間。 此選項可能是最好的

就像這樣:下面一行

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     > 
     <ImageView 
      android:id="@+id/origin_select" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:background="@drawable/feedback_background" 
      android:onClick="choose_origin_button" 
      android:src="@mipmap/ic_action_play" 
      android:layout_alignLeft="@+id/destination_select_select" 
      /> 


     <ImageView 
      android:id="@+id/destination_select_select" 
      android:layout_width="wrap_content" 
      android:layout_centerInParent="true" 
      android:layout_height="match_parent" 
      android:background="@drawable/feedback_background" 
      android:onClick="choose_destination_button" 
      android:src="@mipmap/ic_action_stop"/> 

     <ImageView 
      android:id="@+id/poi_select" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_alignRight="@+id/destination_select_select" 
      android:background="@drawable/feedback_background" 
      android:onClick="choose_interest_button" 
      android:src="@mipmap/ic_action_pause"/> 

    </RelativeLayout> 
0

使用,以避免在活動課左側的差距。

mToolbar.setContentInsetsAbsolute(0, 0); 

請看下面的代碼,以避免頂部和底部空間。

<ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:id="@+id/origin_select" 
      android:src="@mipmap/ic_action_play" 
      android:background="@drawable/feedback_background" 
      android:onClick="choose_origin_button" 
      /> 

在圖像視圖width應該是一個wrap_contentheight0dp

0

爲了避免頂部和底部的空間,

添加此行

android:minHeight="0dp"

<android.support.v7.widget.Toolbar>屬性。