ScrollView 布局中的子项与其他视图发生碰撞

Child inside ScrollView Layout is Colliding with Other Views

我只是一个刚开始创建 Android 应用程序的初学者。但是我有一个问题,我找不到任何解决方案。我正在为我们太阳系中的行星创建一个应用程序。我已将有关行星的信息放入正在融化的 ScrollView 中。这是我的 XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
    android:layout_height="match_parent"
    tools:context=".Jupiter">

    <ImageView
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:id="@+id/jup"
        android:layout_gravity="center"/>

    <ScrollView
        android:layout_width="match_parent"
        android:fillViewport="true"
        android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Jupiter"
                android:textSize="30sp"
                android:textColor="#FFFFFF"
                android:textAlignment="center"
                android:textStyle="bold"/>

            <Space
                android:layout_width="match_parent"
                android:layout_height="40dp"/>

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Distance from the Sun: 773.78 million km"
                android:textSize="25sp"
                android:textAlignment="center"
                android:textColor="#FFFFFF"/>
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Days taken to complete one revolution: 4,300 days"
                android:textSize="25dp"
                android:textColor="#FFFFFF"
                android:textAlignment="center"/>
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Time taken to complete one rotation: 10 hours"
                android:textSize="25sp"
                android:textAlignment="center"
                android:textColor="#FFFFFF"/>
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Axis of rotation: 3° (West to East)"
                android:textAlignment="center"
                android:textSize="25dp"
                android:textColor="#FFFFFF"/>

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Temperature: minus 234 degrees Fahrenheit (minus 145 degrees Celsius)."
                android:textAlignment="center"
                android:textSize="25dp"
                android:textColor="#FFFFFF"/>


        </LinearLayout>

    </ScrollView>

</LinearLayout>

我正在使用 Picasso 库加载图像,这是我的 Jupiter.java class:

package com.sike.planets;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ImageView;

import com.squareup.picasso.Picasso;

public class Jupiter extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_jupiter);
        ImageView jup = findViewById(R.id.jup);
        Picasso.get().load("https://lh3.googleusercontent.com/proxy/uaSv4MYLku6XjIN1ZNS0hLNAoJsXA9wraMySayd-SuPnsw8QfKGi9KF6pJIjl-g2OIF16Vq11nbB3mXtFIUJUtMxOpoQ5wPFrhfIhBPjumRzFiIgTHnG").resize(300, 300).into(jup);
    }
}

这是我的 styles.xml(我发布它是因为我对其进行了一些更改,这可能是真正的问题..):

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">#212121</item>
        <item name="colorPrimaryDark">#000000</item>
        <item name="android:windowBackground">#212121</item>
        <item name="colorAccent">#FFFFFF</item>
    </style>

</resources>

非常感谢你们的所有回答。谢谢!!

TextView 中存在一些问题:

已更改:

android:textSize="25dp"

收件人:

android:textSize="25sp"

我希望这只是一个排版,使用与设备无关的像素进行布局,而不是对文本使用可缩放像素。

我还添加了另一个 TextView,因为没有足够的文本来测试我设备上的 ScrollView。

最后,我添加了以下行以避免必须设置 Picasso:

android:src="@drawable/jup"

并将 Jupiter 的图像 'res.jpg' 复制到 res/drawable 文件夹中。

编辑: 关于Picasso中图片加载不出来,我改了:

发件人:

Picasso.get().load("https://lh3.googleusercontent.com/proxy/uaSv4MYLku6XjIN1ZNS0hLNAoJsXA9wraMySayd-SuPnsw8QfKGi9KF6pJIjl-g2OIF16Vq11nbB3mXtFIUJUtMxOpoQ5wPFrhfIhBPjumRzFiIgTHnG").resize(300, 300).into(jup);

收件人:

Picasso.get().load("https://astronomy.com/-/media/Images/News%20and%20Observing/News/2019/08/JupiterCollision.jpg\n").resize(300, 300).into(jup);

此外,确保清单具有必要的权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

修改后的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
    android:layout_height="match_parent">

    <ImageView
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:id="@+id/jup"
        android:src="@drawable/jup"
        android:layout_gravity="center"/>

    <ScrollView
        android:layout_width="match_parent"
        android:fillViewport="true"
        android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Jupiter"
                android:textSize="30sp"
                android:textColor="#FFFFFF"
                android:textAlignment="center"
                android:textStyle="bold"/>

            <Space
                android:layout_width="match_parent"
                android:layout_height="40dp"/>

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Distance from the Sun: 773.78 million km"
                android:textSize="25sp"
                android:textAlignment="center"
                android:textColor="#FFFFFF"/>
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Days taken to complete one revolution: 4,300 days"
                android:textSize="25sp"
                android:textColor="#FFFFFF"
                android:textAlignment="center"/>
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Time taken to complete one rotation: 10 hours"
                android:textSize="25sp"
                android:textAlignment="center"
                android:textColor="#FFFFFF"/>
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Axis of rotation: 3° (West to East)"
                android:textAlignment="center"
                android:textSize="25sp"
                android:textColor="#FFFFFF"/>

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Temperature: minus 234 degrees Fahrenheit (minus 145 degrees Celsius)."
                android:textAlignment="center"
                android:textSize="25sp"
                android:textColor="#FFFFFF"/>

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Adding more text to test the scroll view. Adding more text to test the scroll view. Adding more text to test the scroll view. Adding more text to test the scroll view. Adding more text to test the scroll view. Adding more text to test the scroll view. Adding more text to test the scroll view. Adding more text to test the scroll view. Adding more text to test the scroll view. Adding more text to test the scroll view. The end."
                android:textAlignment="center"
                android:textSize="25sp"
                android:textColor="#FFFFFF"/>
        </LinearLayout>
    </ScrollView>
</LinearLayout>

这些照片是在 Android 一台设备上拍摄的 运行 Android 10.

滚动前的屏幕截图:

滚动到底部后的屏幕截图:

总之,我觉得不错:)