I have a fairly simply Fragment that adds a handful of colored ImageViews to a RelativeLayout. There are more images than can fit on screen, so I implemented some custom scrolling.
However, When I scroll around, I see that there is an approximately 90dp white border overlapping part of the content right where the edges of the screen are before I scroll.
It is obvious that the ImageViews are still being created and drawn properly, but they are being covered up.
How do I get rid of this?
I have tried:
Changing both the RelativeLayout and FrameLayout to WRAP_CONTENT, FILL_PARENT, MATCH_PARENT, and a few combinations of those.
Setting the padding and margins of both layouts to 0dp.
Example:
Fragment:
public class MyFrag extends Fragment implements OnTouchListener {
    int currentX;
    int currentY;
    RelativeLayout container;
    final int[] colors = {Color.BLACK, Color.RED, Color.BLUE};
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup fragContainer, Bundle savedInstanceState) {
         return inflater.inflate(R.layout.fragment_myfrag, null);
     }
     @Override
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
         container = (RelativeLayout) getView().findViewById(R.id.container);
         container.setOnTouchListener(this);
         // Temp- Add a bunch of images to test scrolling
         for(int i=0; i<1500; i+=100) {
             for (int j=0; j<1500; j+=100) {
                 int color = colors[(i+j)%3];
                 ImageView image = new ImageView(getActivity());
                 image.setScaleType(ImageView.ScaleType.CENTER);
                 image.setBackgroundColor(color);
                 LayoutParams lp = new RelativeLayout.LayoutParams(100, 100);
                 lp.setMargins(i, j, 0, 0); 
                 image.setLayoutParams(lp);
                 container.addView(image);
             }
         }
     }
    @Override 
    public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN: {
                currentX = (int) event.getRawX();
                currentY = (int) event.getRawY();
                break;
            }
            case MotionEvent.ACTION_MOVE: {
                int x2 = (int) event.getRawX();
                int y2 = (int) event.getRawY();
                container.scrollBy(currentX - x2 , currentY - y2);
                currentX = x2;
                currentY = y2;
                break;
            }   
            case MotionEvent.ACTION_UP: {
                break;
            }
        }
        return true; 
    }
}
XML:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context=".FloorPlanFrag">
    <RelativeLayout 
        android:id="@+id/container" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" />
</FrameLayout>