2017-10-07 392 views
-2

在我最近更新Android Studio之前,我已将按钮对齐到屏幕底部。每当我尝试使用android:layout:_alignParentBottom内部的布局参数显然现在不存在的相对布局。如何将按钮移动到屏幕底部?

左边是之前的样子,右边是现在的样子enter image description here

主要活动XML代码:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:ads="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<LinearLayout 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#FFFFFF" 
    android:orientation="vertical" 
    tools:context="techercise.onerepmaxcalculator.MainActivity"> 

    <com.google.android.gms.ads.AdView 
     xmlns:ads="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/bannerAd" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center_horizontal" 
     ads:adSize="BANNER" 
     ads:adUnitId="@+id/banner_ad_unit_id"> 
    </com.google.android.gms.ads.AdView> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="8dp" 
     android:orientation="vertical"> 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:fontFamily="sans-serif-smallcaps" 
      android:gravity="center" 
      android:text="@string/Formulas" 
      android:textColor="#EEFF41" 
      android:textSize="48sp" /> 

     <View 
      android:layout_width="match_parent" 
      android:layout_height="1dp" 
      android:layout_below="@+id/textView3" 
      android:layout_marginBottom="16dp" 
      android:layout_marginLeft="16dp" 
      android:layout_marginRight="16dp" 
      android:background="@android:color/darker_gray"/> 

     <TextView 
      android:id="@+id/textView4" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/textView3" 
      android:layout_centerHorizontal="true" 
      android:layout_margin="24dp" 
      android:textAlignment="center" 
      android:textColor="#00C853" 
      android:textSize="44sp" /> 

    </RelativeLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:baselineAligned="false" 
     android:orientation="horizontal"> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:orientation="vertical"> 

      <TextView 
       android:id="@+id/textView" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:fontFamily="sans-serif-smallcaps" 
       android:gravity="center_horizontal" 
       android:text="@string/weight" 
       android:textColor="#000000" 
       android:textSize="24sp" /> 

      <EditText 
       android:id="@+id/editText" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:layout_marginTop="16dp" 
       android:ems="2" 
       android:inputType="number" 
       android:textColor="#000000" 
       android:textSize="24sp" /> 

     </LinearLayout> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:orientation="vertical"> 

      <TextView 
       android:id="@+id/textView2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:fontFamily="sans-serif-smallcaps" 
       android:gravity="center_horizontal" 
       android:text="@string/reps" 
       android:textColor="#000000" 
       android:textSize="24sp" /> 

      <EditText 
       android:id="@+id/editText2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:layout_marginTop="16dp" 
       android:ems="2" 
       android:inputType="number" 
       android:textColor="#000000" 
       android:textSize="24sp" /> 

     </LinearLayout> 

    </LinearLayout> 

    <LinearLayout 
     style="?android:attr/buttonBarStyle" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="horizontal"> 

     <Button 
      android:id="@+id/button" 
      style="?android:attr/buttonBarButtonStyle" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:onClick="buttonSubmit" 
      android:text="@string/submitBtnText" 
      android:textColor="#00C853" 
      android:textSize="16sp" /> 

     <Button 
      android:id="@+id/button2" 
      style="?android:attr/buttonBarButtonStyle" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:onClick="clearSubmit" 
      android:text="@string/clearBtnText" 
      android:textColor="#F44336" 
      android:textSize="16sp" /> 

    </LinearLayout> 

</LinearLayout> 

+0

“每当我尝试使用Android:布局:_alignParentBottom ......” - 如果这就是你究竟是如何键入它,你在那里得到了一个额外的冒号。它应该是'android:layout_alignParentBottom'。 –

+0

@MikeM。我很感激,但我并没有为错误而感到抱歉!出于某种原因,布局参数和alignParentTop没有显示为有效 – ml50

+0

@ ml50我已更新我的答案和XML文件。试试吧,让我知道它是否有效。 – Darush

回答

0

下面是正确的代码:我完全除去了滚动。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:ads="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#FFFFFF"> 

<com.google.android.gms.ads.AdView 
    android:id="@+id/bannerAd" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    ads:adSize="BANNER" 
    ads:adUnitId="ca-app-pub-8808093751237190/1348767274"> 
</com.google.android.gms.ads.AdView> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/bannerAd" 
    android:orientation="vertical"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="8dp"> 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:fontFamily="sans-serif-smallcaps" 
      android:gravity="center" 
      android:text="@string/Formulas" 
      android:textColor="#EEFF41" 
      android:textSize="48sp"/> 

     <View 
      android:layout_width="match_parent" 
      android:layout_height="1dp" 
      android:layout_below="@+id/textView3" 
      android:layout_marginBottom="16dp" 
      android:layout_marginLeft="16dp" 
      android:layout_marginRight="16dp" 
      android:background="@android:color/darker_gray"> 
     </View> 

     <TextView 
      android:id="@+id/textView4" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/textView3" 
      android:layout_centerHorizontal="true" 
      android:layout_margin="24dp" 
      android:textAlignment="center" 
      android:textColor="#00C853" 
      android:textSize="44sp"/> 
    </RelativeLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:baselineAligned="false" 
     android:orientation="horizontal"> 

     <LinearLayout 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:orientation="vertical"> 
      <TextView 
       android:id="@+id/textView" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:fontFamily="sans-serif-smallcaps" 
       android:gravity="center_horizontal" 
       android:text="@string/weight" 
       android:textColor="#000000" 
       android:textSize="24sp"/> 

      <EditText 
       android:id="@+id/editText" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:layout_marginTop="16dp" 
       android:ems="2" 
       android:inputType="number" 
       android:textColor="#000000" 
       android:textSize="24sp"/> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:orientation="vertical"> 
      <TextView 
       android:id="@+id/textView2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:fontFamily="sans-serif-smallcaps" 
       android:gravity="center_horizontal" 
       android:text="@string/reps" 
       android:textColor="#000000" 
       android:textSize="24sp"/> 

      <EditText 
       android:id="@+id/editText2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:layout_marginTop="16dp" 
       android:ems="2" 
       android:inputType="number" 
       android:textColor="#000000" 
       android:textSize="24sp"/> 
     </LinearLayout> 
    </LinearLayout> 
    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:orientation="horizontal"> 
      <Button 
       android:id="@+id/button" 
       style="?android:attr/buttonBarButtonStyle" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:onClick="buttonSubmit" 
       android:text="@string/submitBtnText" 
       android:textColor="#00C853" 
       android:textSize="16sp"/> 
      <Button 
       android:id="@+id/button2" 
       style="?android:attr/buttonBarButtonStyle" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:onClick="clearSubmit" 
       android:text="@string/clearBtnText" 
       android:textColor="#F44336" 
       android:textSize="16sp"/> 
     </LinearLayout> 
    </RelativeLayout> 
</LinearLayout> 

0

使用RelativeLayout,而不是ScrollView如果你不有一个可以滚动的视图层次结构。

ScrollView是一个FrameLayout,这意味着你应该放置一个孩子在 它包含整个内容滚动;

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:fitsSystemWindows="true" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:id="@+id/activity_main" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#FFFFFF" 
     android:orientation="vertical" 
     tools:context="techercise.onerepmaxcalculator.MainActivity"> 

     <com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto" 
      android:id="@+id/bannerAd" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_gravity="center_horizontal" 
      ads:adSize="BANNER" 
      ads:adUnitId="@+id/banner_ad_unit_id"></com.google.android.gms.ads.AdView> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="8dp" 
      android:orientation="vertical"> 

      <TextView 
       android:id="@+id/textView3" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerHorizontal="true" 
       android:fontFamily="sans-serif-smallcaps" 
       android:gravity="center" 
       android:text="@string/Formulas" 
       android:textColor="#EEFF41" 
       android:textSize="48sp" /> 

      <View 
       android:layout_width="match_parent" 
       android:layout_height="1dp" 
       android:layout_below="@+id/textView3" 
       android:layout_marginBottom="16dp" 
       android:layout_marginLeft="16dp" 
       android:layout_marginRight="16dp" 
       android:background="@android:color/darker_gray" /> 

      <TextView 
       android:id="@+id/textView4" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/textView3" 
       android:layout_centerHorizontal="true" 
       android:layout_margin="24dp" 
       android:textAlignment="center" 
       android:textColor="#00C853" 
       android:textSize="44sp" /> 

     </RelativeLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:baselineAligned="false" 
      android:orientation="horizontal"> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:orientation="vertical"> 

       <TextView 
        android:id="@+id/textView" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:fontFamily="sans-serif-smallcaps" 
        android:gravity="center_horizontal" 
        android:text="@string/weight" 
        android:textColor="#000000" 
        android:textSize="24sp" /> 

       <EditText 
        android:id="@+id/editText" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:layout_marginTop="16dp" 
        android:ems="2" 
        android:inputType="number" 
        android:textColor="#000000" 
        android:textSize="24sp" /> 

      </LinearLayout> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:orientation="vertical"> 

       <TextView 
        android:id="@+id/textView2" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:fontFamily="sans-serif-smallcaps" 
        android:gravity="center_horizontal" 
        android:text="@string/reps" 
        android:textColor="#000000" 
        android:textSize="24sp" /> 

       <EditText 
        android:id="@+id/editText2" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:layout_marginTop="16dp" 
        android:ems="2" 
        android:inputType="number" 
        android:textColor="#000000" 
        android:textSize="24sp" /> 

      </LinearLayout> 

     </LinearLayout> 

    </LinearLayout> 


    <LinearLayout 
     style="?android:attr/buttonBarStyle" 
     android:layout_alignParentBottom="true" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <Button 
      android:id="@+id/button" 
      style="?android:attr/buttonBarButtonStyle" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:onClick="buttonSubmit" 
      android:text="@string/submitBtnText" 
      android:textColor="#00C853" 
      android:textSize="16sp" /> 

     <Button 
      android:id="@+id/button2" 
      style="?android:attr/buttonBarButtonStyle" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:onClick="clearSubmit" 
      android:text="@string/clearBtnText" 
      android:textColor="#F44336" 
      android:textSize="16sp" /> 

    </LinearLayout> 
</RelativeLayout> 

注: - 移动布局时,键盘上来,下面的属性添加到您的活动AndroidManifest.xml文件里面:

android:windowSoftInputMode="adjustResize" 
+0

我有ScrollView中,因为当键盘在手机上,用户可能需要回滚到屏幕的顶部。我尝试了一个相对的布局,这仍然没有奏效。我感谢你的帮助,任何更多的指导将是伟大的! – ml50

+0

然后在您的AndroidManifest.xml文件中将android:windowSoftInputMode =“adjustResize”作为您的活动属性,并让我知道它是否可以解决您的问题。 – Darush

+0

仍然没有工作 – ml50

0

可以布置这样的:

  • RelativeLayout in overall
  • ScrollView for your contents Lay出
  • (的LinearLayout,RelativeLayout的...)底部按钮

you can layout like that

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/scrollView" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:padding="10dp" 
     android:background="@color/COLOR_BG_MENU_PARENT_DEFAULT" 
     android:orientation="vertical" /> 
</ScrollView> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="60dp" 
    android:gravity="center" 
    android:orientation="horizontal" 
    android:id="@+id/llButton" 
    android:background="@color/COLOR_CHART_BLUE" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true"> 
    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="60dp" 
     android:text="Button 02" /> 

    <Button 
     android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="50dp" 
     android:text="Button 01" /> 
</LinearLayout> 

+0

当我尝试这个,现在没有显示的按钮 – ml50

+0

嗨@ ml50,我更新代码演示。 –

相关问题