我的应用中存在相对布局问题。问题只出现在一个活动和一个片段中,尽管我在20多个其他活动和片段中使用了类似的布局。在我的xml设计中,布局显示如下。
然而,在运行时,布局设计搞砸了。以下是运行时布局的屏幕截图。
为什么我遇到这个问题? 这是我的布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/moments_toolbar_background"
android:minHeight="?attr/actionBarSize">
<include layout="@layout/toolbar_ollamoments_comment" />
</android.support.v7.widget.Toolbar>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="70dp"
android:gravity="left">
<ImageView
android:id="@+id/settingsImageViewAccount"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:layout_marginRight="20dp"
android:src="@mipmap/ic_olla_settings_moments_private"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
<TextView
android:id="@+id/accountSettingsTextViewEditUsername"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="Make profile private"
android:layout_marginLeft="5dp"
android:textSize="@dimen/text_size_medium"
android:textColor="@color/settingsMoodTextColor"
android:layout_toRightOf="@+id/settingsImageViewAccount"
android:layout_toLeftOf="@+id/momentSettingsSwitchProfilePrivacy"
android:layout_toStartOf="@+id/momentSettingsSwitchProfilePrivacy" />
<android.support.v7.widget.SwitchCompat
android:id="@+id/momentSettingsSwitchProfilePrivacy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_centerVertical="true"
android:theme="@style/CustomSwitch"
android:checked="true" />
<View
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:background="@color/ollamoments_options_divider_color"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginEnd="15dp"
android:layout_marginStart="15dp"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="70dp">
<ImageView
android:id="@+id/settingsImageViewPhoneNumber"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:layout_marginRight="20dp"
android:src="@mipmap/ic_olla_settings_moments_message"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="Show my phone number on my public profile"
android:layout_marginLeft="5dp"
android:textSize="@dimen/text_size_medium"
android:textColor="@color/settingsMoodTextColor"
android:layout_toRightOf="@+id/settingsImageViewPhoneNumber"/>
<!--
android:layout_toLeftOf="@+id/momentSettingsSwitchMessages"
android:layout_toStartOf="@+id/momentSettingsSwitchMessages"-->
<android.support.v7.widget.SwitchCompat
android:id="@+id/momentSettingsSwitchPhoneNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_centerVertical="true"
android:theme="@style/CustomSwitch"
android:checked="true" />
<View
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:background="@color/ollamoments_options_divider_color"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginEnd="15dp"
android:layout_marginStart="15dp"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="70dp">
<ImageView
android:id="@+id/settingsImageViewChats"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:layout_marginRight="20dp"
android:src="@mipmap/ic_olla_settings_moments_message"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="Allow people to message me"
android:layout_marginLeft="5dp"
android:textSize="@dimen/text_size_medium"
android:textColor="@color/settingsMoodTextColor"
android:layout_toRightOf="@+id/settingsImageViewChats"
android:layout_toLeftOf="@+id/momentSettingsSwitchMessages"
android:layout_toStartOf="@+id/momentSettingsSwitchMessages" />
<android.support.v7.widget.SwitchCompat
android:id="@+id/momentSettingsSwitchMessages"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_centerVertical="true"
android:theme="@style/CustomSwitch"
android:checked="true" />
<View
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:background="@color/ollamoments_options_divider_color"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginEnd="15dp"
android:layout_marginStart="15dp"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="70dp">
<ImageView
android:id="@+id/settingsImageViewMoments"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:layout_marginRight="20dp"
android:src="@mipmap/ic_olla_group"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="Allow moments to be discoverable for trending"
android:layout_marginLeft="5dp"
android:textSize="@dimen/text_size_medium"
android:textColor="@color/settingsMoodTextColor"
android:layout_toRightOf="@+id/settingsImageViewMoments"
android:layout_marginRight="5dp"
android:layout_marginEnd="5dp"
android:layout_toLeftOf="@+id/momentSettingsSwitchDiscoverable"
android:layout_toStartOf="@+id/momentSettingsSwitchDiscoverable" />
<android.support.v7.widget.SwitchCompat
android:id="@+id/momentSettingsSwitchDiscoverable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_centerVertical="true"
android:theme="@style/CustomSwitch"
android:checked="true" />
<View
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:background="@color/ollamoments_options_divider_color"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginEnd="15dp"
android:layout_marginStart="15dp"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="70dp">
<ImageView
android:id="@+id/settingsImageViewSupport"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:layout_marginRight="20dp"
android:src="@mipmap/ic_olla_settings_moments_tagged"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="Hide photos I'm tagged in"
android:layout_marginLeft="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:textSize="@dimen/text_size_medium"
android:textColor="@color/settingsMoodTextColor"
android:layout_toRightOf="@+id/settingsImageViewSupport"
android:layout_toLeftOf="@+id/momentSettingsSwitchHidePhotos"
android:layout_toStartOf="@+id/momentSettingsSwitchHidePhotos" />
<android.support.v7.widget.SwitchCompat
android:id="@+id/momentSettingsSwitchHidePhotos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_centerVertical="true"
android:theme="@style/CustomSwitch"
android:checked="true" />
<View
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:background="@color/ollamoments_options_divider_color"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginEnd="15dp"
android:layout_marginStart="15dp"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="70dp">
<ImageView
android:id="@+id/settingsImageViewNotifications"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:layout_marginRight="20dp"
android:src="@mipmap/ic_olla_settings_moments_location"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="Show my location"
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:textSize="@dimen/text_size_medium"
android:textColor="@color/settingsMoodTextColor"
android:layout_toRightOf="@+id/settingsImageViewNotifications"
android:layout_toLeftOf="@+id/momentSettingsSwitchLocation"
android:layout_toStartOf="@+id/momentSettingsSwitchLocation" />
<android.support.v7.widget.SwitchCompat
android:id="@+id/momentSettingsSwitchLocation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_centerVertical="true"
android:theme="@style/CustomSwitch"
android:checked="true" />
<View
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:background="@color/ollamoments_options_divider_color"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginEnd="15dp"
android:layout_marginStart="15dp"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="70dp">
<ImageView
android:id="@+id/settingsImageViewBlock"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:layout_marginRight="20dp"
android:src="@mipmap/ic_olla_group"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="Block users"
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:textSize="@dimen/text_size_medium"
android:textColor="@color/settingsMoodTextColor"
android:layout_toRightOf="@+id/settingsImageViewBlock" />
<View
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:background="@color/ollamoments_options_divider_color"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginEnd="15dp"
android:layout_marginStart="15dp"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="70dp">
<ImageView
android:id="@+id/settingsImageViewReccomendations"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:layout_marginRight="20dp"
android:src="@mipmap/ic_olla_group"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="Recommend people to follow"
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:layout_marginRight="5dp"
android:layout_marginEnd="5dp"
android:textSize="@dimen/text_size_medium"
android:textColor="@color/settingsMoodTextColor"
android:layout_toRightOf="@+id/settingsImageViewReccomendations"
android:layout_toLeftOf="@+id/momentSettingsSwitchRecommend"
android:layout_toStartOf="@+id/momentSettingsSwitchRecommend" />
<android.support.v7.widget.SwitchCompat
android:id="@+id/momentSettingsSwitchRecommend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_centerVertical="true"
android:theme="@style/CustomSwitch"
android:checked="true" />
<View
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:background="@color/ollamoments_options_divider_color"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginEnd="15dp"
android:layout_marginStart="15dp"/>
</RelativeLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
答案 0 :(得分:1)
您无法将TextView对齐ImageView右侧和Switch的左侧。您只能将其与其中一个视图对齐。您的预览会将其显示为左对齐,但手机会将其显示为右对齐。
我的建议是将文本与ImageView对齐,并将TextView右侧的边距大致添加到Switch的大小。
<TextView
android:id="@+id/accountSettingsTextViewEditUsername"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="Make profile private"
android:layout_marginLeft="5dp"
android:textSize="@dimen/text_size_medium"
android:textColor="@color/settingsMoodTextColor"
android:layout_toRightOf="@+id/settingsImageViewAccount"
android:layout_marginRight="48dp" />
试一试。如果发现文本在Switch中运行,则可能需要调整48dp。您显然也希望对其他settingsMood文本视图进行类似的更改。