首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android ScrollView 內容不顯示?常見佈局錯誤與修正

     編輯:程式設計綜合問答

問題現象

在 ScrollView 中放置 TextView 與 EditText,但畫面卻空白無內容。XML 佈局如下:

<LinearLayout ...>
    <EditText android:id="@+id/editText" ... android:paddingTop="50px"/>
    <ScrollView android:paddingTop="20px" android:layout_height="285dp" ...>
        <LinearLayout android:paddingTop="10px" android:layout_height="40px" ...>
            <TextView android:layout_width="40px" android:layout_height="40px" .../>
            <EditText android:layout_width="40px" android:layout_height="40px" android:paddingTop="50px"/>
        </LinearLayout>
    </ScrollView>
</LinearLayout>

根本原因

子視圖(特別是 EditText)設定了過大的 paddingTop="50px",導致實際內容區域被擠出可視範圍,或是 ScrollView 的固定高度 285dp 與內部 LinearLayout 的高度 40px 不匹配,造成測量錯誤。

解決方案

  1. 移除不必要的大量 padding:將 EditText 的 android:paddingTop="50px" 刪除或改為較小值(如 8dp)。
  2. 使用 wrap_content 代替固定高度:內部 LinearLayout 的 layout_height 應設為 wrap_content,讓 ScrollView 正確計算滾動範圍。
  3. 優先使用 dp 單位:避免混用 px,確保不同螢幕密度下一致性。

修正後 XML 片段

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="285dp"
    android:paddingTop="20dp">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingTop="10dp">
        <TextView
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:text="1."/>
        <EditText
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:hint="Enter List Name"
            android:paddingTop="8dp"/>
    </LinearLayout>
</ScrollView>

補充提示

  • ScrollView 只能有一個直接子視圖,若需多個元素,請用 LinearLayout 或 RelativeLayout 包裹。
  • 若內容高度不足,ScrollView 不會滾動,這是正常行為。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved