Можно просто сделать 4 базовых случая:
1) все кнопки умещаются
2) находишься в начале списка
3) в середине списка
4) в конце списка
Написать эти 4 алгоритма, а потом глянуть, что у них общего.
Тк размер коллекции, доступная ширина и размер кнопки известны - проблемы никакой нет.