タイトルにあるように、私はCardViewをScrollViewの内側に配置しようとしていますが、CardViewの標高の影はその親によってオフになっています...
これはレイアウトXMLです。
<FrameLayout
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="match_parent"
tools:context=".TestScrollViewActivity">
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="128dp"
Android:background="?colorPrimary"
Android:gravity="bottom"
Android:minHeight="?actionBarSize"/>
<ScrollView
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:layout_gravity="center_horizontal"
Android:clipToPadding="false"
Android:paddingBottom="40dp"
Android:paddingTop="60dp">
<Android.support.v7.widget.CardView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:elevation="4dp"
app:cardBackgroundColor="@Android:color/white"
app:cardCornerRadius="0dp">
<LinearLayout
Android:layout_width="400dp"
Android:layout_height="600dp"
Android:orientation="vertical">
</LinearLayout>
</Android.support.v7.widget.CardView>
</ScrollView>
</FrameLayout>
私が見つけた唯一の回避策は、親のScrollViewにパディングを追加するか、子のCardViewにマージンを追加することです...
パディング/マージンを使用せずにこれが発生しないようにするオプションはありますか?
ありがとう。
編集:
これは、親スクロールビューにパディングを設定せずにレイアウトがどのように見えるかを示しています。ご覧のとおり、左右の影がカットされています。
ここで、親のscrollview側にパディングが追加されると、影は次のように正しく描画されます。
だから、ここでの私の主な質問は、これを実現する唯一の方法ですか?それとも、親ビューに、子ビューを正しく描画できるタグまたは構成がありますか?
これは私にとって同様の問題でうまくいきました:
子ビューにシャドウを表示させる正しい方法は、親にパディングを設定し、その親にAndroid:clipToPadding = "false"を設定することです。
ここにあるように: Android "elevation"が影を表示していない
私は同じ問題に直面していました、カードビューにcardUseCompatPadding属性を追加することで解決しました:
app:cardUseCompatPadding="true"
このソリューションを使用した後、影が切り取られたり、トリミングされたりすることはありません。