我正在尝试使用工具栏创建一个底栏并将其与父底部对齐。这是它的外观:
但是如图所示,它们是很多空的空间,因为布局没有完全居中。为什么会这样?
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 :(得分:1)
如果您想将工具栏放在底部,这就是您应该做的事情。
使用LinearLayout和alignParentBottom =“true”
<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"
答案 1 :(得分:0)
创建一个单独的布局文件并将其命名为 tool_bar.xml ,并确保LinearLayout是您的根布局。
然后在你的活动中输入:
weight
然后将 0.3 的layout:width
提供给所有 ImageViews ,将layout:height
和wrap_content
提供为p point myvector[0]
++p
p point myvecotr[1]
p[2] point myvector[2 + 1]
so myvector[3] === p[2] === 100
答案 2 :(得分:0)
为了使视图居中,您有很多选项,其中两个是以下(我相信第二个是最好的):
首先在你的linearlayout中包含weigthsum,我喜欢使用100,因为这有助于我思考百分比,然后包括2个stump framelayout以便将你的imageviews推到水平中心并让他们通过使用这样的重量保持响应属性:
<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内部没有任何内容,但是它们可以帮助你将其他ImageView推向中心,它们都可以为你提供60%的空间,而你的ImageView则只剩下40%,因此它们各占13%。 / p>
另一方面,您可以使用RelativeLayout作为父元素而不是LinearLayout,并将Imageview与id:destination_select_select
对齐,将父级水平和垂直对齐,然后将其他两个图像视图放在一个居中于中间。 此选项可能是最好的:
像这样:
<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>
答案 3 :(得分: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_content
,height
应为0dp
答案 4 :(得分:0)
要避免上下空格,
添加此行
android:minHeight="0dp"
到<android.support.v7.widget.Toolbar>
属性。