![](/img/trans.png)
[英]Android Layout with ListView between a “top bar” and “bottom bar”
[英]Android making bottom tool bar not move to top of layout
这是的延续,在离线状态下,我想在屏幕底部(底部工具栏下方)获得警告文本。 在离线模式下看起来正确:
但是,当我隐藏离线模式时,它会弹出到布局的顶部,如下所示(隐藏我想显示的所有内容):
我尝试将底部工具栏设置为android:layout_alignParentBottom="true"
,当我隐藏带有TextView的RelativeLayout(离线模式)时,确实不会将其弹出到顶部,但是当我不隐藏时,它们会彼此重叠离线模式。
对于比我更熟悉Android UI的人来说可能很容易。XML布局当前如下所示:
<RelativeLayout
android:id="@+id/mainLyt"
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">
<ScrollView
android:id="@+id/formScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_above="@+id/bottomBar" >
<LinearLayout
android:id="@+id/formLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:paddingTop="15dp"
android:paddingRight="10dp"
android:paddingBottom="15dp"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
<RelativeLayout
android:id="@+id/bottomBar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_above="@+id/bottomOffline"
android:background="@color/form_toolbar">
<ImageButton
android:id="@+id/btnPrev"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="btnPrevClicked"
android:layout_alignParentLeft="true"
android:focusableInTouchMode="false"
android:background="?android:attr/selectableItemBackground"
android:src="@drawable/toolbar_prev"
android:padding ="8dp"
/>
<ImageButton
android:id="@+id/btnIndex"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/btnPrev"
android:onClick="btnIndexClicked"
android:focusableInTouchMode="false"
android:background="?android:attr/selectableItemBackground"
android:src="@drawable/toolbar_index"
android:padding ="8dp"
/>
<ImageButton
android:id="@+id/btnValidation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/btnIndex"
android:onClick="btnValidationClicked"
android:focusableInTouchMode="false"
android:background="?android:attr/selectableItemBackground"
android:src="@drawable/toolbar_validate"
android:padding ="8dp"
/>
<ImageButton
android:id="@+id/btnNext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:onClick="btnNextClicked"
android:focusableInTouchMode="false"
android:background="?android:attr/selectableItemBackground"
android:src="@drawable/toolbar_next"
android:padding ="8dp"
/>
<!-- Some Buttons -->
</RelativeLayout>
<RelativeLayout
android:id="@+id/bottomOffline"
android:layout_width="match_parent"
android:layout_height="34dp"
android:layout_alignParentBottom="true"
android:background="@color/orangelight"
android:gravity="center_horizontal">
<TextView
android:id="@+id/offline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusableInTouchMode="false"
android:text="OFFLINE MODE"
android:textStyle="bold"
android:textColor="@color/white"
android:padding ="8dp"
/>
</RelativeLayout>
</RelativeLayout>
谢谢!
使用Java,当您处于在线模式时,我们可以以编程方式将视图设置为在底部对齐。 在用于删除离线栏的代码之后,应放置以下内容。 (由于您没有发布Java,因此我无法更具体地说明)我假设变量bottomBar
的类型为RelativeLayout
并通过findViewById(R.id.bottomBar
分配。
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)bottomBar.getLayoutParams();
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
bottomBar.setLayoutParams(params);
这应该做的是在底部栏上设置ALIGN_PARENT_BOTTOM
标志(在XML中为android:layout_alignParentBottom="true"
),以便即使在删除脱机栏后也将其保持在底部。 因此,如果您在删除离线栏后立即添加该栏,它将更新视图并正确显示该栏
尝试将底部视图包装在LinearLayout中,然后从两个嵌套视图中删除align字段
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/bottomBar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal"
android:background="@color/form_toolbar">
<ImageButton
android:id="@+id/btnPrev"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="btnPrevClicked"
android:layout_alignParentLeft="true"
android:focusableInTouchMode="false"
android:background="?android:attr/selectableItemBackground"
android:src="@drawable/toolbar_prev"
android:padding ="8dp"
/>
<ImageButton
android:id="@+id/btnIndex"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/btnPrev"
android:onClick="btnIndexClicked"
android:focusableInTouchMode="false"
android:background="?android:attr/selectableItemBackground"
android:src="@drawable/toolbar_index"
android:padding ="8dp"
/>
<ImageButton
android:id="@+id/btnValidation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/btnIndex"
android:onClick="btnValidationClicked"
android:focusableInTouchMode="false"
android:background="?android:attr/selectableItemBackground"
android:src="@drawable/toolbar_validate"
android:padding ="8dp"
/>
<ImageButton
android:id="@+id/btnNext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:onClick="btnNextClicked"
android:focusableInTouchMode="false"
android:background="?android:attr/selectableItemBackground"
android:src="@drawable/toolbar_next"
android:padding ="8dp"
/>
<!-- Some Buttons -->
</RelativeLayout>
<RelativeLayout
android:id="@+id/bottomOffline"
android:layout_width="match_parent"
android:layout_height="34dp"
android:background="@color/orangelight"
android:gravity="center_horizontal">
<TextView
android:id="@+id/offline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusableInTouchMode="false"
android:text="OFFLINE MODE"
android:textStyle="bold"
android:textColor="@color/white"
android:padding ="8dp"
/>
</RelativeLayout>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.