繁体   English   中英

Android将底部工具栏移到布局顶部

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM