2014-02-07 3 views
-1

Я сделал код, который заполняет listView из EditText и вводит его на кнопку, и все это работает, НО когда я хочу анимировать новый элемент, который я только что ввел из EditText, я не могу этого сделать, потому что я не могу захватить момент, когда listView получит этот новый вид. Вот как этот взгляд:Как оживить новый элемент в listview

listaRadnikaArray.add(0,novoIme.getText().toString()); 
adapter.notifyDataSetChanged(listaRadnikaArray);  
LayoutInflater inflator = getLayoutInflater(); 
v = inflator.inflate(R.layout.listview_podesavanje, null); 
View noviRadnikView = lvRadnici.getChildAt(0);  //this return null or wrong view            
noviRadnikView.setAlpha(0);       // because listView lvRadnici do not have that new view jet.       
noviRadnikView.animate().setDuration(500).alpha(1);  // why???? 

может кто-нибудь, пожалуйста, объясните мне, что это проблема.

+0

Убедительно, что каждый раз, когда вы добавляете новый элемент, его последнее исправление требуется. Kip-хранилище позиции и метод getview сравнивают позицию позиции нового элемента и getviews. Если такой же анимационный вид –

+0

tnx я поставил позицию сначала на сознательно, потому что я хочу поставить новый элемент поверх списка, и это часть, которая работает просто отлично. вы хотите сказать мне, что обновление задержки ListView, потому что я это делаю? У меня есть пользовательский адаптер массива, который имеет hashMap для заказа в ListAray. – CrazyFox

+0

Нет, это не причина, почему он не оживляет. :) –

ответ

0

здесь какое-то решение этой проблемы How can you tell when a layout has been drawn? или When Can I First Measure a View?

или есть пример из DevByts https://www.youtube.com/watch?v=1wyhY68esZY

и который когда-либо ставить Negativ голосование по вопросу является нуб, потому что я провожу много времени найти решение, и это не простая проблема.

Смежные вопросы