ScrollView无法使用完整尺寸的应用程序滚动

时间:2018-06-23 21:14:36

标签: android

所以我很难使我的应用全屏显示(没有该死的actionBar)。

我是通过在 mainActivity.java 上完成此操作的:

this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);  

如果我在上面的行中添加注释,滚动将再次起作用,但是每次我打开/关闭键盘时,背景图像就会开始移动。

现在的问题是,当我打开键盘时,ScrollView不再滚动元素,并且它隐藏了按钮。

代码:

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.ghaleon.hqsm.MainActivity">


    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/bg2"
        android:scaleType="centerCrop"
    />

    <ImageView
        android:id="@+id/imgLogo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="18dp"
        app:srcCompat="@drawable/logo"
        android:layout_marginBottom="30dp"
        />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/imgLogo"
        android:fillViewport="true"
    >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:background="@drawable/transp_white_rect"
            android:layout_marginStart="30dp"
            android:layout_marginEnd="30dp"
            android:layout_marginTop="50dp"
            >

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Faça seu Cadastro"
                android:textColor="@color/white"
                android:textSize="18sp"
                android:textStyle="bold"
                android:layout_marginBottom="5dp"
                android:paddingStart="15dp"
                android:paddingEnd="10dp"
                android:paddingTop="10dp"
                />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="E mostre ao mundo o seu talento"
                android:textColor="@color/white"
                android:textSize="15sp"
                android:layout_marginBottom="30dp"
                android:paddingStart="15dp"
                android:paddingEnd="10dp"
                android:paddingTop="10dp"
                />

            <AutoCompleteTextView
                android:layout_width="match_parent"
                android:layout_height="40dp"
                android:hint="@string/email"
                android:background="@drawable/rounded_white"
                android:layout_marginStart="15dp"
                android:layout_marginEnd="15dp"
                android:drawableLeft="@drawable/ic_person_pin"
                android:id="@+id/userEmail"
                android:layout_marginBottom="10dp"

                />

            <AutoCompleteTextView
                android:layout_width="match_parent"
                android:layout_height="40dp"
                android:hint="@string/password"
                android:background="@drawable/rounded_white"
                android:layout_marginStart="15dp"
                android:layout_marginEnd="15dp"
                android:drawableLeft="@drawable/ic_lock_outline"
                android:inputType="textPassword"
                android:layout_marginBottom="10dp"
                android:id="@+id/userPassword"
            />

            <AutoCompleteTextView
                android:layout_width="match_parent"
                android:layout_height="40dp"
                android:hint="Confirm Password"
                android:background="@drawable/rounded_white"
                android:layout_marginStart="15dp"
                android:layout_marginEnd="15dp"
                android:drawableLeft="@drawable/ic_lock_outline"
                android:inputType="textPassword"
                android:id="@+id/userConfirmPassword"
                android:layout_marginBottom="15dp"
            />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="50dp"
                android:text="REGISTER"
                android:textColor="@color/white"
                android:textStyle="normal"
                android:background="@drawable/register_button"
                android:layout_gravity="center"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="15dp"
                android:paddingLeft="20dp"
                android:paddingRight="20dp"
                />

        </LinearLayout>

    </ScrollView>

</RelativeLayout>

如何使应用程序不显示actionBar,但也不允许scrollView滚动?

ScreenShot: 大家可以看到,在AutoCompleteTextView下方有一个按钮。我无法向下滚动以单击按钮。 enter image description here

清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.biruleibe.hqsm">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity" android:windowSoftInputMode="stateVisible|adjustResize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>  
没有全屏显示的示例:(紫色小条显示时钟/电池/等...,每当我打开/关闭键盘时背景图像就会移动)。但是滚动条起作用。

enter image description here

1 个答案:

答案 0 :(得分:2)

首先,您应该将样式设置为-

<style name="themex" parent="Theme.AppCompat.Light.NoActionBar">

// your style
<item name="android:windowFullscreen">true</item>

</style>

在Android清单中,您应该将windowsoftinputmode定义为

<activity android:name=".MainActivity"
            android:windowSoftInputMode="adjustNothing"
            />

最后是布局。这是一个hack,我已经做了很多次了,没有任何问题。

在您的按钮下方添加一个空的textview并将MarginTop设置为-300dp

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.ghaleon.hqsm.MainActivity">


    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/bg2"
        android:scaleType="centerCrop"
    />

    <ImageView
        android:id="@+id/imgLogo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="18dp"
        app:srcCompat="@drawable/logo"
        android:layout_marginBottom="30dp"
        />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/imgLogo"
        android:fillViewport="true"
    >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:background="@drawable/transp_white_rect"
            android:layout_marginStart="30dp"
            android:layout_marginEnd="30dp"
            android:layout_marginTop="50dp"
            >

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Faça seu Cadastro"
                android:textColor="@color/white"
                android:textSize="18sp"
                android:textStyle="bold"
                android:layout_marginBottom="5dp"
                android:paddingStart="15dp"
                android:paddingEnd="10dp"
                android:paddingTop="10dp"
                />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="E mostre ao mundo o seu talento"
                android:textColor="@color/white"
                android:textSize="15sp"
                android:layout_marginBottom="30dp"
                android:paddingStart="15dp"
                android:paddingEnd="10dp"
                android:paddingTop="10dp"
                />

            <AutoCompleteTextView
                android:layout_width="match_parent"
                android:layout_height="40dp"
                android:hint="@string/email"
                android:background="@drawable/rounded_white"
                android:layout_marginStart="15dp"
                android:layout_marginEnd="15dp"
                android:drawableLeft="@drawable/ic_person_pin"
                android:id="@+id/userEmail"
                android:layout_marginBottom="10dp"

                />

            <AutoCompleteTextView
                android:layout_width="match_parent"
                android:layout_height="40dp"
                android:hint="@string/password"
                android:background="@drawable/rounded_white"
                android:layout_marginStart="15dp"
                android:layout_marginEnd="15dp"
                android:drawableLeft="@drawable/ic_lock_outline"
                android:inputType="textPassword"
                android:layout_marginBottom="10dp"
                android:id="@+id/userPassword"
            />

            <AutoCompleteTextView
                android:layout_width="match_parent"
                android:layout_height="40dp"
                android:hint="Confirm Password"
                android:background="@drawable/rounded_white"
                android:layout_marginStart="15dp"
                android:layout_marginEnd="15dp"
                android:drawableLeft="@drawable/ic_lock_outline"
                android:inputType="textPassword"
                android:id="@+id/userConfirmPassword"
                android:layout_marginBottom="15dp"
            />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="50dp"
                android:text="REGISTER"
                android:textColor="@color/white"
                android:textStyle="normal"
                android:background="@drawable/register_button"
                android:layout_gravity="center"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="15dp"
                android:paddingLeft="20dp"
                android:paddingRight="20dp"
                />
<TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text=""

                android:layout_marginTop="300dp"
                />


        </LinearLayout>

    </ScrollView>

</RelativeLayout>