當使用嵌套佈局時,特別是嵌套滾動視圖時,我遇到了呈現用戶界面的問題。最外面的容器是ScrollView然後是第二佈局,ConstraintLayout,最後是HorizontalScrollView。使用嵌套佈局時的Android UI問題
但是,通過使用上面的嵌套視圖組,一些(或大多數)視圖不顯示在某些手機(所有Android 5.0+)中。
現在,它們都是我的應用程序所必需的。代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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="wrap_content">
<android.support.constraint.ConstraintLayout xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context="com.natramizh.trademanagement.ReportPurchaseRegisterActivity">
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:elevation="3dp"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/guidelineH47P" />
<fragment
android:id="@+id/fragment_agent_detail_header"
android:name="com.natramizh.trademanagement.AgentDetailHeaderFragment"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
tools:layout="@layout/fragment_agent_detail_header" />
<TextView
android:id="@+id/tvReportDate"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:text="@string/lblReportDate"
app:layout_constraintEnd_toStartOf="@+id/guideline40P"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/fragment_agent_detail_header" />
<EditText
android:id="@+id/txtDate"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:ems="10"
android:inputType="date"
app:layout_constraintBottom_toBottomOf="@+id/tvReportDate"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/guideline40P"
app:layout_constraintTop_toTopOf="@+id/tvReportDate"
tools:layout_editor_absoluteY="27dp" />
<Button
android:id="@+id/btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:text="@string/btnSubmit"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/txtDate" />
<HorizontalScrollView
android:id="@+id/productConsolidateHScrollView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:fillViewport="true"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/btnSubmit">
<android.support.v7.widget.GridLayout
android:id="@+id/gridPurchaseRegister"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
android:layout_marginTop="8dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btnSubmit">
</android.support.v7.widget.GridLayout>
</HorizontalScrollView>
<android.support.constraint.Guideline
android:id="@+id/guideline40P"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.40" />
<android.support.constraint.Guideline
android:id="@+id/guidelineH47P"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.47" />
</android.support.constraint.ConstraintLayout>
</ScrollView>
輸出我得到這個樣子的:
report purchase register screen issue - image
正如你可以從上面的鏈接的圖像看,該按鈕是完全看不見。即使在真實設備上運行,以下所有視圖也是不可見的。
現在,我需要的是解決我的問題。指出我做了什麼或做了什麼錯誤只需要一些調整。這是獲得完全可滾動屏幕的正確方法。
注意:gridlayout將被動態添加。
您好,感謝您的答覆。但即使改變你提到的內容,問題仍然存在! – Leo
@Leo讓你的android.support.constraint.ConstraintLayout android:layout_width =「match_parent」 android:layout_height =「match_parent」 –
你的回答是對的。早些時候,我使用fillViewPort = true和layout_height = wrap_content作爲ScrollView元素,但是現在我將其更改爲fillViewPort = true和layout_height = match_parent,它可以工作! – Leo