Я использую в своем проекте эту библиотеку
https://github.com/aaronbond/Swipe-Deck
Проблема в том, что карточки которые идут одна за другой одного размера. Мне нужно сделать, чтоб карточки по мере отдаления были меньшего размера...
То есть первая которая на виду самая большая та что за ней чуть меньше и так далее.
Как и показано в описании библиотеки я использую адаптер
public class SwipeDeckAdapter extends BaseAdapter {
private List<String> data;
private Context context;
public SwipeDeckAdapter(List<String> data, Context context) {
this.data = data;
this.context = context;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if(v == null){
LayoutInflater inflater = getLayoutInflater();
// normally use a viewholder
v = inflater.inflate(R.layout.test_card, parent, false);
}
((TextView) v.findViewById(R.id.textView2)).setText(data.get(position));
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String item = (String)getItem(position);
Log.i("MainActivity", item);
}
});
return v;
}
}
Насколько я понимаю изменения нужно делать именно в нем в методе getView()
Просто для теста я делаю это так
@Override
public View getView(final int position, View convertView, ViewGroup iParent)
{
View v = convertView;
if (v == null)
{
v = LayoutInflater.from(iParent.getContext()).inflate(R.layout.my_flight_card_deck_item, iParent, false);
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) v.getLayoutParams();
params.height = 150;
params.width = 150;
v.setLayoutParams(params);
}
TextView textView = (TextView) v.findViewById(R.id.tv_test_deck);
String item = (String) getItem(position);
textView.setText(item);
return v;
}
Я явно указываю, что хочу получить view
размером 150 на 150 , но в результате не получаю ничего... Такое впечатление , что как только я хочу применить свои параметры отрисовка вью просто игнорируется
Что делаю не так?
Если есть вопросы спрашивайте
Посоветуйте куда смотреть
Если у кого то будет такая же проблема с этой либой, то я решил это так
там есть класс SwipeDeck
в нем есть метод animateCardPosition
я его переделал таким образом
protected void animateCardPosition(View card, int position)
{
float offset = (int) (position * CARD_SPACING);
ViewPropertyAnimator currentView = card.animate().setDuration(ANIMATION_DURATION).y(getPaddingTop() - offset);
//If it is 3 cards in stack so it is last one
if (position < NUMBER_OF_SIMULTANEOUS_CARDS - 2)
{
currentView.alpha(1.0f).scaleX(1);
}
//If it is 3 cards in stack so it is middle one
else if (position < NUMBER_OF_SIMULTANEOUS_CARDS - 1)
{
currentView.alpha(1.0f).scaleX(0.95f);
}
//If it is 3 cards in stack so it is first one
else
{
currentView.alpha(0.4f).scaleX(0.90f);
}
}
В итоге получилось то, что нужно
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Можно ли из исходников Android Studio проекта, собрать APK файл( вне студии ) через терминал(Linux)?
Здравствуйте, у меня есть небольшая таблица, которую я хочу загрузить в память в виде List<Country>, чтобы не дергать БДНо
Блоки с фиксированной высотой с inline-blockКак прижать их к верхней границе контейнера без абсолютного позиционирования?