ScrollView doesn't display its content properl

2019-04-08 07:49发布

You can see my scrollview being displayed the same in jellybean, & kitkat, very awesome:

one enter image description here

But I am shocked to see the same thing in lower versions like 2.2, 2.3.3

enter image description here enter image description here

It seems that it display some portion of text attached to upper & bottom portion of screen.

BTW, The lines in middle are just the textviews with gray background .

You can see my xml code, sorry its a little long code

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/stars"
android:padding="5dp"
android:scrollbars="vertical"
>


<LinearLayout


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

 <EditText
     android:id="@+id/editText1"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:ems="10"
     android:textColor="#fff"
     android:hint="Type your Full Name here"
     android:inputType="textPersonName"
     android:digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz " >

     <requestFocus />
 </EditText>

 <Button
     android:id="@+id/button1"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:gravity="center"
     android:background="#330000"
     android:onClick="showresult"
     android:textColor="#ffffff"
     android:alpha=".8"
     android:text="Show My Fortune" />

 <TextView
     android:id="@+id/textView13"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:textColor="#ffffff"
     android:textAppearance="?android:attr/textAppearanceSmall" />

 <LinearLayout
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="horizontal" 
     android:baselineAligned="false">

     <LinearLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_weight="1" 
         android:orientation="horizontal"
         >

         <TextView
             android:id="@+id/textView1"
             android:layout_width="20dp"
             android:layout_height="wrap_content"
             android:textColor="#ffffff"
             android:textSize="18sp"
              />

         <TextView
             android:id="@+id/textView2"
             android:layout_width="50dp"
             android:layout_height="wrap_content"

             android:textColor="#ffffff"
             android:textSize="18sp" />
     </LinearLayout>

     <LinearLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content" 
         android:orientation="horizontal"
         android:layout_weight="1" >

         <TextView
             android:id="@+id/textView3"
             android:layout_width="20dp"
             android:layout_height="wrap_content"

             android:textColor="#ffffff"
             android:textSize="18sp" />

         <TextView
             android:id="@+id/textView4"
             android:layout_width="50dp"
             android:layout_height="wrap_content"

             android:textColor="#ffffff"
             android:textSize="18sp" />
     </LinearLayout>

     <LinearLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:orientation="horizontal"
         android:layout_weight="1"  >

         <TextView
             android:id="@+id/textView5"
             android:layout_width="20dp"
             android:layout_height="wrap_content"
             android:textColor="#ffffff"
             android:textSize="18sp"/>

         <TextView
             android:id="@+id/textView6"
             android:layout_width="50dp"
             android:layout_height="wrap_content"
             android:textColor="#ffffff"
             android:textSize="18sp" />
     </LinearLayout>

 </LinearLayout>

 <TextView
     android:id="@+id/textView7"
     android:layout_width="match_parent"
     android:layout_height=".5dp"

     android:textAppearance="?android:attr/textAppearanceSmall" />

 <TextView
     android:id="@+id/textView8"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
      android:textColor="#ffffff"
     android:textAppearance="?android:attr/textAppearanceSmall" />

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

     <TextView
         android:id="@+id/textView9"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textAppearance="?android:attr/textAppearanceLarge"
         android:textColor="#ffffff" />

     <TextView
         android:id="@+id/textView14"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:textColor="#ffffff"
         android:gravity="right"

         android:textAppearance="?android:attr/textAppearanceLarge" />

 </LinearLayout>

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

     <TextView
         android:id="@+id/textView10"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textAppearance="?android:attr/textAppearanceLarge"
         android:textColor="#ffffff" />

     <TextView
         android:id="@+id/textView15"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"

         android:textColor="#ffffff"

         android:gravity="right"
         android:textAppearance="?android:attr/textAppearanceLarge" />

 </LinearLayout>

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

     <TextView
         android:id="@+id/textView11"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textAppearance="?android:attr/textAppearanceLarge"
         android:textColor="#ffffff" />

     <TextView
         android:id="@+id/textView16"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"

         android:textColor="#ffffff"

         android:gravity="right"
         android:textAppearance="?android:attr/textAppearanceLarge" />

 </LinearLayout>

 <TextView
     android:id="@+id/textView12"
     android:layout_width="match_parent"
     android:layout_height=".5dp"/>

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

     <TextView
         android:id="@+id/textView17"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textColor="#ffffff" 
         android:textAppearance="?android:attr/textAppearanceLarge" />

     <TextView
         android:id="@+id/textView18"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:gravity="right"
         android:textColor="#ffffff"
         android:textAppearance="?android:attr/textAppearanceLarge" />

 </LinearLayout>

 <TextView
     android:id="@+id/textView19"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:textColor="#ffffff"
     android:textAppearance="?android:attr/textAppearanceSmall" />

 <TextView
     android:id="@+id/textView20"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:textColor="#ff0000"
     android:textAppearance="?android:attr/textAppearanceLarge" />

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

     <TextView
         android:id="@+id/textView21"
         android:layout_width="40dp"
         android:layout_height="wrap_content"

         android:gravity="right"
         android:textColor="#ff0000"
         android:textAppearance="?android:attr/textAppearanceLarge" />

     <TextView
         android:id="@+id/textView27"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textColor="#ffffff"
         android:textAppearance="?android:attr/textAppearanceLarge" />

     <TextView
         android:id="@+id/textView22"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:textColor="#ffff00"
         android:textAppearance="?android:attr/textAppearanceLarge" />

 </LinearLayout>

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

     <TextView
         android:id="@+id/textView23"
         android:layout_width="40dp"
         android:layout_height="wrap_content"
         android:textColor="#ff0000"
         android:gravity="right"
         android:textAppearance="?android:attr/textAppearanceLarge" />

     <TextView
         android:id="@+id/textView28"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textColor="#ffffff"
         android:textAppearance="?android:attr/textAppearanceLarge" />

     <TextView
         android:id="@+id/textView24"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"

         android:textColor="#ffff00"
         android:textAppearance="?android:attr/textAppearanceLarge" />

 </LinearLayout>

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

     <TextView
         android:id="@+id/textView25"
         android:layout_width="40dp"
         android:layout_height="wrap_content"
         android:gravity="right"
         android:textColor="#ff0000"
         android:textAppearance="?android:attr/textAppearanceLarge" />

     <TextView
         android:id="@+id/textView29"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textColor="#ffffff"
         android:textAppearance="?android:attr/textAppearanceLarge" />

     <TextView
         android:id="@+id/textView26"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textColor="#ffff00"
         android:textAppearance="?android:attr/textAppearanceLarge" />

 </LinearLayout>

</LinearLayout>
</ScrollView>

Also in GraphicalLayout is shows this warning :enter image description here

I hope I explained my problem clearly !

Looking for a answer,

Thanks in advance


UPDATE: After @semsamot answer the above warning was disappeared, but the problem is still not solved.

Sorry, my above code was too long but I have another layout in my app displaying the same problem

Consider this code:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/stars"
tools:context="com.vivekwarde.numerologyfortune.MyLuckyNumber"
>
<ScrollView 
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical" >

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

        <Button
            android:id="@+id/button1"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:textColor="#fff"
            android:gravity="center"
            android:onClick="showDatePickerDialog"
            android:text="Birthdate ?"
            android:background="#4c0000" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:textColor="#ffffff"
            android:text="Large Text"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Large Text"
            android:textColor="#ffffff"
            android:textAppearance="?android:attr/textAppearanceLarge" />

    </LinearLayout>

</ScrollView>
</RelativeLayout>

If I display this layout simply it displays as expected in jelly bean & kitkat like thisenter image description here

But see this output in 2.2 & 2.3.3 enter image description here

Why the text in TextView does not display properly as expected. ?

4条回答
贼婆χ
2楼-- · 2019-04-08 08:04

don`t use .5dp while setting height or width

<TextView
 android:id="@+id/textView7"
 android:layout_width="match_parent"
 android:layout_height=".5dp"  //  **modify** this to android:layout_height="1dp"
 android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
 android:id="@+id/textView12"
 android:layout_width="match_parent"
 android:layout_height=".5dp"  //  **modify** this to android:layout_height="1dp" />

Using this you can remove this error requestfocus does not set the required layout_height attribute and also might be you can solve your issue also

查看更多
Deceive 欺骗
3楼-- · 2019-04-08 08:06

Don't use float values that lower than 1 in this format: ".x" Instead use this format: "0.x"

If you change those values you see the warnings disappear!

Note: Also note that "alpha" attribute introduced in API Level 11 so it will not work in lower API(s).

查看更多
Deceive 欺骗
4楼-- · 2019-04-08 08:19

Don't use wrap_content for the ScrollView. The ScrollView should have a concrete size which is relate with the screen size, not the content. The LinearLayout inside it should keep the wrap_content. In both your examples, you should use match_parent for the ScrollView

查看更多
Lonely孤独者°
5楼-- · 2019-04-08 08:20

I don't think it'll work but u should try it once.

instead of using android:layout_height="60dp" use maxHeight and minHeight with same value 60dp as ur case .I think it will solve your problem.And also fill some background color to see whats wrong with the soln.

查看更多
登录 后发表回答