12

I used Swipe refresh layout in my app. It worked but I want set location for progress bar in swipe layout margin top 100 px. I don't want use default location of it. How I do? thank you

Trần Văn Hòa
  • 173
  • 1
  • 1
  • 10

2 Answers2

25

You could set the offset from top using this setProgressViewOffset (boolean scale, int start, int end)

You can read about it here.

Eric B.
  • 4,622
  • 2
  • 18
  • 33
9

In folder res/values create an xml file if you have not already called dimens.xml

Then you can have in it:

<resources>
    <dimen name="refresher_offset">your_preferred_offset_in_dp</dimen>
    <dimen name="refresher_offset_end">how_long_in_dp_the_swipe</dimen>
</resources>

Then take the SwipeRefreshLayout that you have inflated and add on onCreate if you are in Activity or onCreateView if you are in fragment:

swipeRefreshLayout.setProgressViewOffset(false, 
  getResources().getDimensionPixelSize(R.dimen.refresher_offset),    
  getResources().getDimensionPixelSize(R.dimen.refresher_offset_end));

Alternatively you can replace the dimen constants with just a number, but that will mean pixels and the relative position will be different making the implementation problematic in different devices.

z3n105
  • 1,935
  • 1
  • 15
  • 14