按钮上方的Android操作栏

时间:2016-11-01 17:19:42

标签: android xml android-layout android-actionbar

这是我的布局。现在我有了工作工具栏,但按钮位于栏下方。我尝试在这里和那里添加一些边距,但由于某种原因,一个按钮总是与其他按钮不对齐,即使我总是使用相同的MarginTop。我该如何解决这个问题?

<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:theme="@style/ThemeOverlay.AppCompat.ActionBar"
   app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

    <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="Start"
       android:id="@+id/button"
       android:layout_alignTop="@+id/buttonP"
       android:layout_centerHorizontal="true"
       app:layout_widthPercent="40%"
       app:layout_marginTopPercent="2%"/>

<Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="&lt;&lt;"
       android:id="@+id/buttonP"
       android:layout_alignParentLeft="true"
       app:layout_widthPercent="30%"
   app:layout_marginTopPercent="2%"/>

    <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="&gt;&gt;"
       android:id="@+id/buttonN"
       android:layout_above="@+id/custom_list"
       android:layout_alignRight="@+id/custom_list"
       app:layout_widthPercent="30%"
       app:layout_marginTopPercent="2%"/>

    <ListView
       android:id="@+id/custom_list"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:dividerHeight="1dp"
       android:layout_weight="0.5"
       android:layout_below="@+id/button" />
</android.support.percent.PercentRelativeLayout>

2 个答案:

答案 0 :(得分:0)

对于工具栏,您应该使用线性布局,然后使用按钮。 您还需要layour_weight属性来正确对齐每个按钮。 一个例子:

 <android.support.v7.widget.Toolbar
            android:id="@+id/toolBar"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_gravity="start|center_vertical"
            android:background="@color/grey"
            app:popupTheme="@style/Theme.App.PopupOverlay" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/white"
            android:orientation="horizontal"
            android:weightSum="10">

            <RelativeLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1.3"
                android:padding="5dp">

                <ImageView
                    android:id="@+id/iv"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:background="@drawable/menu_ic"
                    android:padding="5dp" />
            </RelativeLayout>

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="start|center_vertical"
                android:layout_weight="1"
                android:text="@string/xyz"
                android:textColor="@color/darker_gray"
                android:textSize="18sp" />

            <View
                android:layout_width="1dp"
                android:layout_height="match_parent"
                android:layout_gravity="start|center_vertical"
                android:layout_marginBottom="10dp"
                android:layout_marginTop="10dp"
                android:background="@color/grey" />

            <EditText
                android:id="@+id/et_search"
                android:layout_width="0dp"
                android:layout_height="40dp"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_weight="6.4"
                android:background="@android:color/transparent"
                android:gravity="start|center_vertical"
                android:hint="@string/search_keyword"
                android:singleLine="true"
                android:textColor="@color/darker_gray"
                android:textColorHint="@color/darker_gray"
                android:textSize="17sp" />

            <View
                android:layout_width="1dip"
                android:layout_height="match_parent"
                android:layout_gravity="end"
                android:background="@color/grey" />

            <RelativeLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1.3">

                <ImageView
                    android:id="@+id/notifications"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:background="@drawable/notification_icon" />

            </RelativeLayout>

        </LinearLayout>

答案 1 :(得分:0)

添加操作栏按钮

为要包含在操作栏中的每个项目添加<item>元素,如菜单XML文件的此代码示例所示:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <!-- "Mark Favorite", should appear as action button if possible -->
    <item
        android:id="@+id/action_favorite"
        android:icon="@drawable/ic_favorite_black_48dp"
        android:title="@string/action_favorite"
        app:showAsAction="ifRoom"/>

    <!-- Settings, should always be in the overflow -->
    <item android:id="@+id/action_settings"
          android:title="@string/action_settings"
          app:showAsAction="never"/>

</menu>

app:showAsAction属性指定操作是否应显示为应用栏上的按钮。如果你设置app:showAsAction =&#34; ifRoom&#34; (如示例代码中最喜欢的操作),如果应用栏中有空间,则操作显示为按钮;如果没有足够的空间,则会向溢出菜单发送多余的操作。如果您设置app:showAsAction =&#34; never&#34; (如示例代码的设置操作中所示),操作始终列在溢出菜单中,不会显示在应用栏中。

Sample link