按钮对齐无法在真实设备上运行

时间:2017-11-03 02:25:55

标签: android xml

是否有人可以帮助我找出我的代码有什么问题?它的预览是预期的。但是当我在真实设备中测试它们时会出现问题。我在底部添加了Admob Banner广告。在添加它之前它完全是好的。但现在它没有正确对齐。我的错误是什么,或者我该怎么做?

我的XML代码是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:background="#FFFFFF"
android:orientation="vertical">

<ScrollView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/scrollView8"
    android:layout_alignParentTop="true"
    android:layout_above="@+id/ll1"
    android:fillViewport="true">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="16dp" >

        <TextView
            android:id="@+id/textLink"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/description_product"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="15sp" />

        <TextView
            android:id="@+id/result_field_product"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_alignWithParentIfMissing="true"
            android:layout_centerInParent="false"
            android:layout_marginTop="20dp"
            android:gravity="center_vertical|center_horizontal"
            android:text="Example application"
            android:textSize="16sp"
            android:textIsSelectable="true" />

    </LinearLayout>
</ScrollView>

<LinearLayout
    android:id="@+id/ll1"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_above="@+id/adView"
    android:orientation="horizontal"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true">
    <Button
        android:id="@+id/btnProceed"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/button_fullwidth"
        android:padding="5dp"
        android:text="@string/choose_action"
        android:textColor="@android:color/white" />
    <view
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="invisible"
        android:layout_weight="1"/>

    <Button
        android:id="@+id/btnCancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/button_fullwidth"
        android:padding="5dp"
        android:text="@string/abort_action"
        android:textColor="@android:color/white" />
</LinearLayout>
<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:background="@color/colorAccent"
    android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="@string/banner_home_footer">
</com.google.android.gms.ads.AdView>

这里我的一个按钮是对齐的,但是另一个按钮不是它的位置。我该如何解决它?

当前状态: enter image description here

2 个答案:

答案 0 :(得分:1)

1.在android:gravity="center_vertical"

中设置内容LinearLayout

2.确保Viewgoneinvisible。并更改为View

3.如果您希望两个Button布局为一半,则应在android:layout_weight="1"中设置android:layout_width="0dp"Button

修改

将根标签更改为LinearLayout

试试这个。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:ads="http://schemas.android.com/apk/res-auto"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:background="#FFFFFF"
              android:orientation="vertical">

    <ScrollView
        android:id="@+id/scrollView8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/ll1"
        android:layout_weight="1"
        android:fillViewport="true">

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:padding="16dp">

            <TextView
                android:id="@+id/textLink"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="@string/description_product"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp"/>

            <TextView
                android:id="@+id/result_field_product"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_alignParentTop="true"
                android:layout_alignWithParentIfMissing="true"
                android:layout_centerInParent="false"
                android:layout_marginTop="20dp"
                android:gravity="center_vertical|center_horizontal"
                android:text="Example application"
                android:textIsSelectable="true"
                android:textSize="16sp"/>

        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:id="@+id/ll1"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center_vertical"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btnProceed"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/button_fullwidth"
            android:padding="5dp"
            android:text="@string/choose_action"
            android:textColor="@android:color/white"/>

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:visibility="invisible"/>

        <Button
            android:id="@+id/btnCancel"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/button_fullwidth"
            android:padding="5dp"
            android:text="@string/abort_action"
            android:textColor="@android:color/white"/>
    </LinearLayout>

    <com.google.android.gms.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:background="@color/colorAccent"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_home_footer">
    </com.google.android.gms.ads.AdView>
</LinearLayout>

答案 1 :(得分:0)

每当您使用layout_weight时,都应将layout_widthlayout_height设置为0dp,具体取决于orientation

例如。当您android:orientation="horizontal"使用android:layout_width="0dp"

当您android:orientation="vertical"使用android:layout_height="0dp"