【发布时间】:2016-07-11 19:01:22
【问题描述】:
我有一个问题,相对布局在模拟器中似乎超出屏幕但在设计器中正确显示。
我在 RelativeLayout 中有一个 LinearLayout 和一个按钮。 LinearLayout 包含一些 TextView,然后是一个带有单选按钮的 ScrollView(要动态分配的数字)。
将 LinearLayout 和按钮放在 RelativeLayout 中,无论单选按钮的数量如何,按钮都会留在屏幕底部。这使我可以将按钮锚定到屏幕底部,将 LinearLayout 的底部锚定到按钮顶部。
在 Android Studio 设计器中,这非常有用!该按钮位于底部,如果收音机超出屏幕,您可以滚动它们。当我运行模拟器时,虽然屏幕在按钮之前被切断了!我已经在 Microsoft 和 Android(速度太慢)的模拟器中尝试过了,得到了相同的结果。
我在Android: Relative layout content goes below screen 发现了一个类似的问题,该问题明确指出将此行添加到我的按钮:
android:layout_marginBottom="@dimen/activity_horizontal_margin"
这使它部分回到屏幕上,但不是全部,该线程的其余部分是关于删除我想在这个用例中保留的 LinearLayout。似乎这里发生了更多事情。我究竟做错了什么?这是我的 XML:
<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"
android:paddingBottom="16dp"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.complexityresolved.lifetracker.RadioInputsActivity$PlaceholderFragment"
android:gravity="center_horizontal">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.complexityresolved.lifetracker.RadioInputsActivity$PlaceholderFragment"
android:orientation="vertical"
android:layout_centerHorizontal="true"
android:layout_above="@+id/radioInputsActivityDoneButton">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Text With Trait Name"
android:id="@+id/RadioScreenTextViewTraitName"
android:layout_gravity="center_horizontal"
android:clickable="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Text With Short Description"
android:id="@+id/RadioScreenTextViewShortDescription"
android:layout_gravity="center_horizontal"
android:visibility="gone" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/scrollView">
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton android:id="@+id/radio_pirates"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="pirates"/>
<RadioButton android:id="@+id/radio_ninjas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ninjas"/>
<RadioButton android:id="@+id/radio_irates"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="pirates"/>
<RadioButton android:id="@+id/radio_injas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ninjas"/>
<RadioButton android:id="@+id/radio_rates"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="pirates"/>
<RadioButton android:id="@+id/radio_njas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ninjas"/>
<RadioButton android:id="@+id/radio_ates"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="pirates"/>
<RadioButton android:id="@+id/radio_jas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ninjas"/>
<RadioButton android:id="@+id/adio_pirates"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="pirates"/>
<RadioButton android:id="@+id/adio_ninjas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ninjas"/>
<RadioButton android:id="@+id/dio_pirates"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="pirates"/>
<RadioButton android:id="@+id/dio_ninjas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ninjas"/>
<RadioButton android:id="@+id/raio_pirates"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="pirates"/>
<RadioButton android:id="@+id/raio_ninjas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ninjas"/>
<RadioButton android:id="@+id/rao_pirates"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="pirates"/>
<RadioButton android:id="@+id/rao_ninjas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ninjas"/>
</RadioGroup>
</ScrollView>
</LinearLayout>
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/radioInputsActivityDoneButton"
android:id="@+id/radioInputsActivityDoneButton"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="@dimen/activity_horizontal_margin"/>
</RelativeLayout>
另外,我的活动布局按要求:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.complexityresolved.lifetracker.RadioInputsActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/appbar_padding_top"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/AppTheme.PopupOverlay">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
【问题讨论】:
-
没有发现你的布局有问题,能不能在开发者选项中启用布局边界来发截图?
-
请分享您的活动 xml
-
如果您使用的是 TabbedActivity,请执行此操作,在 LinearLayout 中使用 AppBarLayout 和 ViewPager。
标签: android android-layout android-relativelayout