ScrollView
aLinearLayout
とその子を持つ aを含むレイアウトがあります: PercentRelativeLayout
23.2.1、そのLinearLayout
下に別のもの、PercentRelativeLayout
その後に別のもの。真ん中LinearLayout
にRecyclerView
( LinearLayoutManager
, 垂直) があります。以下に例を示します。
実行時にRecyclerView
データを入力すると、空のデータから開始するため、そのサイズが大きくなります。高さが画面サイズを超えて変化すると、パーセンテージ値を高さとして持つ車 (id = 車) の上部の画像が画面から完全に消えます。この画面を上下にスクロールすると、上端と下端の両方に到達し、画像が表示されません。
また、このレイアウトのもう 1 つの場所にパーセンテージ値があり、それらは を定義していますmarginTop
。これらの余白も消えます。幅に依存するパーセンテージ値は正常に機能します。Java コードには、画像の可視性の変更は含まれず、余白は調整されません。
この問題がサポート ライブラリの特定のバージョンに関連しているかどうかは現在わかりません。このライブラリがリリースされたのと同時に、この画面を作成していました。また、この問題は Marshmallow では発生せず、Lollipop 以下でのみ発生します。この問題を解決する方法について何か助けていただければ幸いです。
<!-- a container for all views that should scroll -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- the first block of views - they need percents -->
<android.support.percent.PercentRelativeLayout
android:id="@+id/carHolder"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/car"
android:layout_width="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:src="@drawable/car"
app:layout_heightPercenet="25%"/>
<ImageView
android:id="@+id/sliderBg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/car"
android:layout_centerHorizontal="true"
android:src="@drawable/slider_bg"/>
</android.support.percent.PercentRelativeLayout>
<!-- a middle block of views, they don't need percents -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<!-- another block of views, they need percents -->
<android.support.percent.PercentRelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- some other views -->
</android.support.percent.PercentRelativeLayout>
</LinearLayout>
アップデート
この問題は、サポート ライブラリ 23.3.0 でも見られます。これは、 にデータを入力するときだけでなく、 が画面の高さを超えるRecyclerView
たびに発生します。ScrollView