Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

set location for progressbar in swipe refresh layout android

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

like image 671
Trần Văn Hòa Avatar asked Nov 19 '15 07:11

Trần Văn Hòa


2 Answers

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

You can read about it here.

like image 51
Eric B. Avatar answered Oct 22 '22 23:10

Eric B.


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.

like image 41
z3n105 Avatar answered Oct 22 '22 22:10

z3n105