如何在Framelayout内的开始和中心位置之间放置一个按钮?

时间:2018-01-06 10:54:07

标签: android android-framelayout

我在Framelayout中放置了3个按钮,每个按钮的布局重力如下:

  1. 开始|底部
  2. 中心|底部
  3. 端|底部
  4. 现在我想在(开始和中心)和(结束和中心)之间放置两个额外的按钮。实现这一目标的最佳方法是什么?我无法在中心按钮的两侧获得2个水平线性布局,我不打算使用BottomNavigationView。

3 个答案:

答案 0 :(得分:2)

您可以为中心按钮的任意一侧创建2个单独的线性布局。左边应该有

<LinearLayout
  android:layout_gravity="start|bottom"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:orientation="horizontal">

--add 2 buttons

</LinearLayout>

而正确的应该有:

<LinearLayout
  android:layout_gravity="end|bottom"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:orientation="horizontal">
--add 2 buttons

</LinearLayout>

中心按钮应在框架布局中保持不变。

答案 1 :(得分:0)

或者您可以使用线性布局来实现此目的。喜欢: this

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:layout_weight="5"
    android:orientation="horizontal"
    tools:context="com.myapplication.MainActivity">

    <Button
        android:id="@+id/first"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_weight="1"
        android:text="First" />

    <Button
        android:id="@+id/second"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_weight="1"
        android:text="two"
        tools:ignore="ButtonStyle" />

    <Button
        android:id="@+id/third"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_weight="1"
        android:text="third" />

    <Button
        android:id="@+id/fourth"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_weight="1"
        android:text="four" />

    <Button
        android:id="@+id/fifith"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_weight="1"
        android:text="fifith" />

</LinearLayout>

答案 2 :(得分:0)

why don't you use relative layout instead of frame layout. like this: 

Like this

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    tools:context="com.myapplication.MainActivity">

   <Button
       android:id="@+id/first"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
      android:layout_alignParentStart="true"
       android:layout_alignParentLeft="true"
       android:layout_alignParentBottom="true"/>
    <Button
        android:id="@+id/second"
        android:layout_toRightOf="@+id/first"
        android:layout_alignParentBottom="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/third"
        android:layout_toRightOf="@+id/second"
        android:layout_alignParentBottom="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/fourth"
        android:layout_toRightOf="@+id/third"
        android:layout_alignParentBottom="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/fifith"
        android:layout_toRightOf="@+id/fourth"
        android:layout_alignParentBottom="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>