Reputation: 11053
I just add a scrollview like this and after the screen loads a black background appears.
This black area is positioned on the left and upper most corner of a surrounding RelativeLayout. While the scroll view is positioned with android:layout_marginLeft="20dp"
android:layout_marginTop="40dp"
So the left 20dp and the top 40dp are black, while the remaining grey background is undisturbed.
Here the xml part with the scrollView:
<View
android:id="@+id/emptyView"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_below="@+id/right1" />
<RelativeLayout
android:id="@+id/right2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/emptyView" >
<RelativeLayout
android:id="@+id/right22"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/emptyView" >
<ImageView
android:id="@+id/emptyView2"
android:layout_width="match_parent"
android:layout_height="2dp"
android:contentDescription="@string/anyStringValue" />
<HorizontalScrollView
android:id="@+id/scrollView"
android:layout_width="fill_parent"
android:layout_height="520dp"
android:layout_marginLeft="20dp"
android:layout_marginTop="40dp"
android:background="#0000FF" >
<TextView
android:id="@+id/infoTxt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FF0000"
android:padding="10dp"
android:text="@string/Settings_infoTxt"
android:textColor="#000000"
android:textSize="20dp" />
</HorizontalScrollView>
</RelativeLayout>
</RelativeLayout>
I already tried to add an emptyView on top of the scroll view as well as 2 RelativeLayouts. But the black area keeps appearing no matter what. (with/without RelativeLayouts and empty views on top)
Since the backgroud of the complete page is grey, this black area distorts the complete screen.
I used scroll views many times before but never had a problem like this. I have no idea what is causing this.
How can I get rid of the black area caused by the scroll view?
many thanks!
Upvotes: 1
Views: 3298
Reputation: 106
I got pretty much the same problem, some black areas appeared on loading the scroll view, those disappeared on touch. I solved it by dont setting the background color of the scroll view. It should be enough to set the background color of the conten views.
//outer layout, where black shapes appear
LinearLayout outer = new LinearLayout(context);
outer.setBackgroundColor(Color.MAGENTA);
ScrollView list = new ScrollView(context);
list.setLayoutParams(new LayoutParams(100, 300));
// do not set the background color here, this causes the blak shapes
// list.setBackgroundColor(Color.CYAN);
// add an inner layout to the scrollView and set the background of the innerlayout
LinearLayout linearLayout = new LinearLayout(context);
linearLayout.setBackgroundColor(Color.CYAN);
linearLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
list.addView(linearLayout);
outer.addView(list);
Upvotes: 2