如何将滚动视图设置为此XML文件?

时间:2015-08-02 08:59:41

标签: android xml

我是android的初学者,并为我的活动XML文件编写此代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="4"
    >
    <ImageView
        android:id="@+id/ExplainImage"
        android:layout_gravity="center"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:src="@drawable/abc_btn_check_material">
    </ImageView>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Large Text"
        android:id="@+id/MAINLABEL"
        android:layout_weight="3"
        android:layout_gravity="center"
        android:height="2dp" />
  </LinearLayout>


并显示和工作良好,但我希望在大文本中滚动文本视图并将文本视图部分更改为:

<ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Large Text"
        android:id="@+id/MAINLABEL"
        android:layout_weight="3"
        android:layout_gravity="center"
        android:height="2dp" />
   </ScrollView>


但是没有向我或图像显示文字,会发生什么?我该如何解决?谢谢。

3 个答案:

答案 0 :(得分:0)

使用此布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="match_parent"
    android:layout_height="match_parent" >


<ImageView
    android:id="@+id/ExplainImage"
    android:layout_gravity="center"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_launcher"
    android:layout_weight="0.1" >
</ImageView>

    <ScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.9">
            <TextView
            android:layout_width="wrap_content"
            android:layout_height="10000dp"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Large Text"
            android:id="@+id/MAINLABEL"
            android:layout_gravity="center"
             />

    </ScrollView>
</LinearLayout>

答案 1 :(得分:0)

Scrollview只能有一个子视图。您还将TextView定义为高度为2dp,如果将其更改为此类,则应显示文本:

<ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Large Text"
        android:id="@+id/MAINLABEL"
        android:layout_gravity="center" />
   </ScrollView>

如果您需要向Scrollview添加多个视图,可以在ViewGroup中组织它们(就像在LinearLayout中一样。

答案 2 :(得分:0)

关于你的问题有一些观点:

  1. ScrollView应该只有一个子视图,在本例中为:LinearLayout。

  2. Android:weight_sum和android:layout_weight用法适用于您想要在水平或垂直布局中填充屏幕的情况。这个理论并不适合你希望动态TextView在TextView中使用更大的文本和更多文本来制作大而乞讨的情况。在这种情况下,你应该使用wrap_content for android:layout_height来确保你的TextView高度是动态的并且符合你的TextView内容。

  3. 根据您的情况使用此代码段:

    <?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
    
            <ImageView
                android:id="@+id/ExplainImage"
                android:layout_width="match_parent"
                android:layout_height="wrap_parent"
                android:layout_gravity="center"
                android:src="@drawable/abc_btn_check_material"></ImageView>
    
            <TextView
                android:id="@+id/MAINLABEL"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="10dp"
                android:layout_gravity="center"
                android:height="2dp"
                android:text="Large Text"
                android:textAppearance="?android:attr/textAppearanceLarge" />
        </LinearLayout>
    </ScrollView>
    

    也许这个帮助。