有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java可滚动视图

我试图用下面的代码显示json中包含的信息

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
xmlns:app="http://schemas.安卓.com/apk/res-auto"
xmlns:tools="http://schemas.安卓.com/tools"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"
tools:context=".MarkerActivity">        
<Button
        安卓:id="@+id/button"
        style="@安卓:style/Widget.Material.Button.Small"
        安卓:layout_width="34dp"
        安卓:layout_height="38dp"
        安卓:layout_alignParentEnd="true"
        安卓:layout_alignTop="@+id/textView"
        安卓:layout_marginEnd="36dp"
        安卓:layout_marginTop="-1dp"
        安卓:text="+" />

    <TextView
        安卓:id="@+id/textView2"
        安卓:layout_width="115dp"
        安卓:layout_height="wrap_content"
        安卓:layout_alignParentStart="true"
        安卓:layout_alignParentTop="true"
        安卓:layout_marginStart="30dp"
        安卓:layout_marginTop="149dp"
        安卓:text="Status"
        安卓:textSize="18sp"
        安卓:textStyle="bold"
        tools:text="Status" />

    <TextView
        安卓:id="@+id/mytextview"
        安卓:layout_width="282dp"
        安卓:layout_height="79dp"
        安卓:layout_alignParentEnd="true"
        安卓:layout_alignParentTop="true"
        安卓:layout_marginEnd="15dp"
        安卓:layout_marginTop="27dp"
        安卓:textSize="20dp"
        安卓:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/imageView" />

    <ImageView
        安卓:id="@+id/imageView"
        安卓:layout_width="40dp"
        安卓:layout_height="52dp"
        安卓:layout_alignParentStart="true"
        安卓:layout_alignTop="@+id/mytextview"
        安卓:layout_marginStart="15dp"
        安卓:src="@drawable/ic_mappin" />

    <View
        安卓:id="@+id/divider"
        安卓:layout_width="match_parent"
        安卓:layout_height="9dp"
        安卓:layout_alignParentStart="true"
        安卓:layout_centerVertical="true"
        安卓:background="?安卓:attr/listDivider" />

    <View
        安卓:id="@+id/divider2"
        安卓:layout_width="match_parent"
        安卓:layout_height="7dp"
        安卓:layout_alignParentStart="true"
        安卓:layout_alignParentTop="true"
        安卓:layout_marginTop="134dp"
        安卓:background="?安卓:attr/listDivider" />
    <ScrollView>
        <TextView
            安卓:id="@+id/textView"
            安卓:layout_width="115dp"
            安卓:layout_height="wrap_content"
            安卓:layout_alignStart="@+id/textView2"
            安卓:layout_below="@+id/divider"
            安卓:text="Comments"
            安卓:textSize="18sp"
            安卓:textStyle="bold"
            tools:text="Comments" />

        <TextView
            安卓:id="@+id/jsonData1"
            安卓:layout_width="155dp"
            安卓:layout_height="83dp"
            安卓:layout_alignStart="@+id/textView2"
            安卓:layout_below="@+id/textView2"
            安卓:layout_gravity="center_horizontal"
            安卓:text="STATS"
            安卓:textAppearance="@安卓:style/TextAppearance.Material.Small"
            安卓:textSize="16sp" />

        <TextView
            安卓:id="@+id/jsonData2"
            安卓:layout_width="157dp"
            安卓:layout_height="117dp"
            安卓:layout_alignStart="@+id/textView2"
            安卓:layout_below="@+id/textView"
            安卓:layout_gravity="center_horizontal"
            安卓:text="COMMENTS"

安卓:textAppearance="@安卓:style/TextAppearance.Material.Small"
            安卓:textSize="16sp" />
</ScrollView>

</RelativeLayout>

我需要一个可滚动的视图,因为我的json文件可以包含许多条目,并且可以填充显示器上的所有空间。 有了这段代码,我的程序崩溃了。你知道怎么解决吗?我尝试了很多方法,但都是相同的情况


共 (2) 个答案

  1. # 1 楼答案

    ScrollView需要有一个子项,因此将3 TextViews包装在LinearLayout布局中,并将其高度设置为wrap_content

    ScrollView=>LinearLayout=>Textviews
    
  2. # 2 楼答案

    ScrollView只能有一个子项,但在ScrollView中放置了3个子项。这就是你的应用程序崩溃的原因

    您需要将所有子视图(所有三个文本视图)放在一个视图组中。然后你的应用程序将正常运行。在这里你可以看到

        <?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=".MarkerActivity">        
        <Button
                android:id="@+id/button"
                style="@android:style/Widget.Material.Button.Small"
                android:layout_width="34dp"
                android:layout_height="38dp"
                android:layout_alignParentEnd="true"
                android:layout_alignTop="@+id/textView"
                android:layout_marginEnd="36dp"
                android:layout_marginTop="-1dp"
                android:text="+" />
    
            <TextView
                android:id="@+id/textView2"
                android:layout_width="115dp"
                android:layout_height="wrap_content"
                android:layout_alignParentStart="true"
                android:layout_alignParentTop="true"
                android:layout_marginStart="30dp"
                android:layout_marginTop="149dp"
                android:text="Status"
                android:textSize="18sp"
                android:textStyle="bold"
                tools:text="Status" />
    
            <TextView
                android:id="@+id/mytextview"
                android:layout_width="282dp"
                android:layout_height="79dp"
                android:layout_alignParentEnd="true"
                android:layout_alignParentTop="true"
                android:layout_marginEnd="15dp"
                android:layout_marginTop="27dp"
                android:textSize="20dp"
                android:textStyle="bold"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/imageView" />
    
            <ImageView
                android:id="@+id/imageView"
                android:layout_width="40dp"
                android:layout_height="52dp"
                android:layout_alignParentStart="true"
                android:layout_alignTop="@+id/mytextview"
                android:layout_marginStart="15dp"
                android:src="@drawable/ic_mappin" />
    
            <View
                android:id="@+id/divider"
                android:layout_width="match_parent"
                android:layout_height="9dp"
                android:layout_alignParentStart="true"
                android:layout_centerVertical="true"
                android:background="?android:attr/listDivider" />
    
            <View
                android:id="@+id/divider2"
                android:layout_width="match_parent"
                android:layout_height="7dp"
                android:layout_alignParentStart="true"
                android:layout_alignParentTop="true"
                android:layout_marginTop="134dp"
                android:background="?android:attr/listDivider" />
            <ScrollView
               android:layout_width="match_parent"
               android:layout_height="match_parent">
              <LinearLayout 
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
                <TextView
                    android:id="@+id/textView"
                    android:layout_width="115dp"
                    android:layout_height="wrap_content"
                    android:layout_alignStart="@+id/textView2"
                    android:layout_below="@+id/divider"
                    android:text="Comments"
                    android:textSize="18sp"
                    android:textStyle="bold"
                    tools:text="Comments" />
    
                <TextView
                    android:id="@+id/jsonData1"
                    android:layout_width="155dp"
                    android:layout_height="83dp"
                    android:layout_alignStart="@+id/textView2"
                    android:layout_below="@+id/textView2"
                    android:layout_gravity="center_horizontal"
                    android:text="STATS"
                    android:textAppearance="@android:style/TextAppearance.Material.Small"
                    android:textSize="16sp" />
    
                <TextView
                    android:id="@+id/jsonData2"
                    android:layout_width="157dp"
                    android:layout_height="117dp"
                    android:layout_alignStart="@+id/textView2"
                    android:layout_below="@+id/textView"
                    android:layout_gravity="center_horizontal"
                    android:text="COMMENTS"
                    android:textSize="16sp"
    android:textAppearance="@android:style/TextAppearance.Material.Small"
                     />
           </LinearLayout>
       </ScrollView>
    
     </RelativeLayout>