我正在创建一个可滚动菜单(ScrollView),其中一个关闭按钮(LinearLayout)位于屏幕顶部。
我的全屏是RelativeLayout - 有一个LinearLayout(关闭按钮),然后是一个ScrollView(菜单):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/DashboardView_Root"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/DashboardView_menuHeaderContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignTop="@+id/DashboardView_barContainer"
android:layout_alignBottom="@+id/DashboardView_barContainer"
android:orientation="horizontal">
<ImageView
android:id="@+id/DashboardView_menuBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:paddingLeft="@dimen/layoutPaddingExtra"
android:paddingTop="@dimen/layoutPaddingExtra"
android:paddingRight="@dimen/layoutPaddingExtra"
android:paddingBottom="@dimen/layoutPaddingLess"
android:contentDescription="Menu"
android:layout_gravity="bottom|center_vertical" />
<Iag.TextView
android:id="@+id/DashboardView_menuHeading"
style="@style/Text.H3.Light"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/layoutPadding"
android:paddingTop="@dimen/layoutPaddingExtra"
android:paddingRight="@dimen/layoutPaddingExtra"
android:paddingBottom="@dimen/layoutPaddingExtra"
android:layout_gravity="bottom" />
</LinearLayout>
<Scrollview
android:id="@+id/DashboardView_menuContainer"
android:layout_width="match_parent"
android:layout_alignParentBottom="true"
android:fillViewport="true" />
</RelativeLayout>
所有看起来都很完美,除了Scrollview在关闭按钮下方上升得太高。我希望ScrollView菜单停在关闭按钮(frameLayout)的底部。
如何停止菜单从关闭按钮(屏幕顶部)的相同位置开始?
编辑:对不起,我说关闭按钮最初是FrameLayout,但它是一个LinearLayout。请参阅上面的代码axml。
以下是整个页面的完整代码 - 如果用户点击菜单图标,菜单就会弹出屏幕的其余部分:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/DashboardView_Root"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/DashboardView_contentContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/DashboardView_downBtn"
android:layout_below="@+id/DashboardView_barContainer" />
<ImageView
android:id="@+id/DashboardView_downBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:paddingTop="@dimen/layoutPadding"
android:paddingBottom="@dimen/layoutPaddingExtra"
android:paddingLeft="@dimen/layoutPaddingExtra"
android:paddingRight="@dimen/layoutPaddingExtra"
android:clickable="true"
android:focusable="true"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
<FrameLayout
android:id="@+id/DashboardView_barContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:fitsSystemWindows="true">
<ImageView
android:id="@+id/DashboardView_upBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:src="@drawable/ab_logo"
android:paddingLeft="@dimen/layoutPaddingExtra"
android:paddingTop="@dimen/layoutPaddingExtra"
android:paddingRight="@dimen/layoutPaddingExtra"
android:paddingBottom="@dimen/layoutPaddingLess"
android:contentDescription="Up"
android:layout_gravity="center_horizontal" />
<ImageView
android:id="@+id/DashboardView_helpBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:src="@drawable/ab_help"
android:paddingLeft="@dimen/layoutPaddingExtra"
android:paddingTop="@dimen/layoutPaddingExtra"
android:paddingRight="@dimen/layoutPaddingExtra"
android:paddingBottom="@dimen/layoutPaddingLess"
android:contentDescription="Help"
android:layout_gravity="right" />
</FrameLayout>
<LinearLayout
android:id="@+id/DashboardView_menuHeaderContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignTop="@+id/DashboardView_barContainer"
android:layout_alignBottom="@+id/DashboardView_barContainer"
android:orientation="horizontal">
<ImageView
android:id="@+id/DashboardView_menuBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:paddingLeft="@dimen/layoutPaddingExtra"
android:paddingTop="@dimen/layoutPaddingExtra"
android:paddingRight="@dimen/layoutPaddingExtra"
android:paddingBottom="@dimen/layoutPaddingLess"
android:contentDescription="Menu"
android:layout_gravity="bottom|center_vertical" />
<Iag.TextView
android:id="@+id/DashboardView_menuHeading"
style="@style/Text.H3.Light"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/layoutPadding"
android:paddingTop="@dimen/layoutPaddingExtra"
android:paddingRight="@dimen/layoutPaddingExtra"
android:paddingBottom="@dimen/layoutPaddingExtra"
android:layout_gravity="bottom" />
</LinearLayout>
<Scrollview
android:id="@+id/DashboardView_menuContainer"
android:layout_width="match_parent"
android:layout_alignParentBottom="true"
android:fillViewport="true" />
</RelativeLayout>
答案 0 :(得分:1)
因此,在您的情况下,使用android:layout_below
将其放在按钮下方。在相对布局中,这种属性始终可用。