修复屏幕上的按钮

时间:2015-12-12 10:14:03

标签: android xml android-studio

我正在使用ScrollView和RelativeLayout。我在屏幕底部有一个按钮。 我希望按钮在滚动时随屏幕移动。按钮应出现在屏幕的右下角。

我已尝试使用FrameLayout,如同与此问题相关的其中一个答案中所述,但我希望我的按钮位于屏幕右下角。 截至目前,整个屏幕的底部都有按钮,这意味着你需要向下滚动才能看到它。

<ScrollView
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:fillViewport="true"
    >
    <RelativeLayout
        android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
        android:layout_width="match_parent"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin"
        tools:context="com.example.android.app1.SecondScreen">

    <TextView
        android:text="Check all the Symptoms which apply - "
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25sp"
        android:id="@+id/textView" />

    <CheckBox1>
    <CheckBox2>
    <CheckBox3>
    <CheckBox4>
    <CheckBox5>
    <CheckBox6>
    <CheckBox7>
    <CheckBox8>
    <CheckBox9>
    <CheckBox10>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="25sp"
            android:text="submit"
            android:id="@+id/submitbutton"
            android:layout_below="@id/Lastcheckbox"
            android:layout_alignParentRight="true"
            />
    </RelativeLayout>
</ScrollView>

如何实现这一目标?

4 个答案:

答案 0 :(得分:1)

您需要一个浮动操作按钮:

<RelativeLayout
 ...
xmlns:app="http://schemas.android.com/apk/res-auto">

   <android.support.design.widget.FloatingActionButton
        android:id="@+id/myFAB"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_plus_sign"
        app:elevation="4dp"
        ... />

...

在您的应用级别gradle中

compile 'com.android.support:design:23.1.1'

获得整个工作项目

  

将Android Studio更新为1.5

     

创建一个名为Blank Activity的新项目,它会自动为您生成!

答案 1 :(得分:1)

使用FloatingActionBar代替普通按钮,它始终位于屏幕右下角,使用设计支持库。

<android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        android:src="@android:drawable/ic_dialog_email" />

答案 2 :(得分:0)

您可以使用按钮

分隔滚动视图
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_height="match_parent"
    android:layout_width="match_parent">
<ScrollView
    android:id="@+id/myScrollView"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:fillViewport="true"
    android:layout_above="@+id/submitbutton">
  <RelativeLayout
      android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
      android:layout_width="match_parent"
      android:paddingRight="@dimen/activity_horizontal_margin"
      android:paddingTop="@dimen/activity_vertical_margin"
      android:paddingBottom="@dimen/activity_vertical_margin"
      tools:context="com.example.android.app1.SecondScreen">

    <TextView
        android:text="Check all the Symptoms which apply - "
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25sp"
        android:id="@+id/textView" />

    <CheckBox1/>
    <CheckBox2/>
    <CheckBox3/>
    <CheckBox4/>
    <CheckBox5/>
    <CheckBox6/>
    <CheckBox7/>
    <CheckBox8/>
    <CheckBox9/>
    <CheckBox10/>


  </RelativeLayout>
</ScrollView>
  <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textSize="25sp"
      android:text="submit"
      android:id="@+id/submitbutton"
      android:layout_alignParentRight="true"
      android:layout_alignParentBottom="true" />
</RelativeLayout>

答案 3 :(得分:0)

您可以像其他人一样使用FloatingActionButton。 要么 您可以将ScrollView放在LinearLayout中,然后将按钮放在ScrollView之后,如下所示:

<LinearLayout ....>
   <ScrollView 
    android:layout_width=".."
    android:layout_height="0" 
    android:layout_weight="1">
       <RelativeLayout>
       .
       .
       .
       </RelativeLayout>
   </ScrollView>
   <Button android:layout_gravity = "right" ..... />
</LinearLayout>