当前位置: 首页 > 知识库问答 >
问题:

如何拥有不可见的可滚动布局

孟鸿朗
2023-03-14

我有一个layout.xml,它有可见和不可见/gone组件。我想当去可见组件变得可见,然后布局应该成为可滚动的。

在下面的XML中,我希望第二个相对布局是可滚动的,当它消失的可见组件变得可见时。
Layout.XML

<RelativeLayout
    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"
    xmlns:materialdesign="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/root_view"
    xmlns:roid="http://schemas.android.com/apk/res-auto"
    tools:context=".MainActivity"
    android:background="@color/backgroud_user">


    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="120dp"
        android:src="@drawable/comp_icon" />



    <RelativeLayout
        android:id="@+id/LoginBox"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="20dp"
        android:layout_below="@+id/imageView1"
        android:layout_centerInParent="true">

        <EditText
            android:id="@+id/nameText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="text"
            android:hint="Name"
            android:theme="@style/MyEditTextTheme"
            android:layout_marginLeft="30dp"
            android:layout_marginRight="30dp"
            android:padding="20dp"
            android:textColorHint="#C5CAE9"
            />


        <EditText
            android:layout_below="@+id/nameText"
            android:id="@+id/mobileText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="number"
            android:hint="Mobile Number"
            android:maxLength="10"
            android:theme="@style/MyEditTextTheme"
            android:layout_marginLeft="30dp"
            android:layout_marginRight="30dp"
            android:padding="20dp"
            android:textColorHint="#C5CAE9"
            />

        <EditText
            android:layout_below="@+id/mobileText"
            android:id="@+id/employerText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="text"
            android:hint="Select Employer(s)"
            android:focusable="false"
            android:visibility="gone"
            android:textColor="@color/white"
            android:theme="@style/MyEditTextTheme"
            android:layout_marginLeft="30dp"
            android:layout_marginRight="30dp"
            android:padding="20dp"
            android:textColorHint="#C5CAE9" />

        <com.gc.materialdesign.NewMaterials.Spinner
            android:layout_below="@+id/employerText"
            android:id="@+id/employer_spinner_id"
            style="@style/Material.Widget.Spinner.Light"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:rd_style="@style/Material.Drawable.Ripple.Wave.Light"
            app:rd_enable="true"
            app:rd_delayClick="false"
            app:spn_labelEnable="true"
            app:spn_label="Employer"
            android:visibility="gone"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingTop="20dp"
            android:paddingBottom="20dp"
            android:layout_marginLeft="30dp"
            android:layout_marginRight="30dp"
            app:spn_arrowSwitchMode="true"
            app:spn_arrowAnimDuration="@android:integer/config_shortAnimTime"
            app:spn_arrowInterpolator="@android:anim/decelerate_interpolator"/>

        <LinearLayout
            android:id="@+id/linearlayoutCheckbox"
            android:layout_below="@+id/employer_spinner_id"
            android:layout_width="match_parent"
            android:visibility="gone"
            android:layout_height="wrap_content">

        <com.gc.materialdesign.views.CheckBox
            android:id="@+id/noEmployercheckboxid"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingTop="20dp"
            android:paddingBottom="20dp"
            android:layout_marginLeft="30dp"
            android:layout_marginRight="10dp"
            />

            <TextView
                android:layout_gravity="center"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@color/white"
                android:text="Employer Unknown"/>
        </LinearLayout>

        <com.gc.materialdesign.views.ButtonRectangle
            android:id="@+id/loginButton"
            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:text="VALIDATE"
            android:gravity="center|center_horizontal"
            android:layout_below="@+id/linearlayoutCheckbox"
            android:layout_marginTop="7sp"
            android:layout_marginLeft="30dp"
            android:layout_marginRight="30dp"
            android:textColor="#1A237E"/>



    </RelativeLayout>

</RelativeLayout>

请帮助我实现。

共有1个答案

郤立果
2023-03-14

在RelationVelayOut上添加一个ScrollView。将相对布局的位置属性设置为它(如边距),并将其高度更改为wrap_content。

<RelativeLayout
    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"
    xmlns:materialdesign="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/root_view"
    xmlns:roid="http://schemas.android.com/apk/res-auto"
    tools:context=".MainActivity"
    android:background="@color/backgroud_user">


    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="120dp"
        android:src="@drawable/comp_icon" />


   <ScrollView
         android:id="@+id/scrollView"
         android:width="match_parent"
         android:height="match_parent"
         android:layout_marginTop="20dp"
         android:layout_centerInParent="true"
         android:below="@+id/imageView1">

        <RelativeLayout
            android:id="@+id/LoginBox"
            android:layout_width="match_content"
            android:layout_height="wrap_content">

           ...
        </RelativeLayout>
    </ScrollView>
</RelativeLayout>
 类似资料:
  • 问题内容: 我想要一个带有滚动条的JTextPane,我该怎么做?谢谢。 问题答案: 要在新的JTextPane上插入滚动条,只需使用JScrollPane: JTextPane API:http : //download.oracle.com/javase/6/docs/api/javax/swing/JTextPane.html JScrollPane API:http : //downloa

  • 我正在制作一个网站,我认为导航栏会导致较小的设备太大。我发现了如何使它可滚动,但我不喜欢它旁边显示一个新的滚动条。我怎样才能让它隐形?

  • 问题内容: 我有一个弹出列表,其中包含子s 的垂直列表。我添加了向上/向下键盘导航来更改当前突出显示的哪个孩子。 现在,如果我按下向下键的次数足够多,则突出显示的项目将不再可见。如果滚动视图,则向上键也会发生相同的情况。 在React中自动将孩子滚动到视图中的正确方法是什么? 问题答案: 我假设您具有某种组件和某种组件。我在一个项目中执行此操作的方式是让该项目知道它是否处于活动状态。该项目将要求列

  • 我使用以下代码滚动到不可见的元素: 当我使用上述方法进行滚动时,出现以下错误:- 未知命令,除滚动外的所有移动命令都已删除。 在Appium 1.5.0中,名称定位器被删除 在java客户机v4.0.0中,和被弃用。 我使用的是xpath而不是。 什么是移动解决方案:滚动到

  • 给定一个带有一些子节点的巨大的是的内容,我如何滚动以使当前视口之外的子节点之一可见?

  • 如何在Vaadin8中从flex切换到block模式?