Проблеми с мащабната анимация

Опитвам се да мащабирам изглед (ListView) до определен размер, когато потребителят кликне върху елемент в ListView. „Оригиналното“ (начално) състояние на ListView е зададено на

layout_width="match_parent"

ListView очевидно е правоъгълник, ако желаете. Не мога да разбера как да намаля ListView и да запазя лявата страна на правоъгълника (т.е. ListView) „закотвена“ към лявата страна на екрана/родителската дейност. Всичко, което искам да се случи, е дясната страна на ListView да се плъзне от дясната страна на екрана/родителя. Оста Y не трябва да се мащабира или променя, само дясната страна на ListView. Извинявам се, ако това не е достатъчно ясно. По-долу е груба картина на началното и крайното състояние на ListView при щракване от страна на потребителя.

http://dc589.2shared.com/download/mdK_EobN/listviewanimationjpeg.jpg?tsid=20130313-093629-3c816601

Оценявам всяка помощ, благодаря.


person MaxK    schedule 13.03.2013    source източник


Отговори (2)


ако сте сигурни, че винаги първо имате разширения изглед, можете да направите нещо подобно:

  1. започнете, като използвате match_parent, както правите в момента, за да сте сигурни, че заема цялото хоризонтално пространство на своя родителски контейнер.

  2. Заменете onWindowFocusChanged от дейността си, за да получите максималната необходима ширина

    @Override
    public void onWindowFocusChanged (boolean hasFocus) {
        // myComponentToBeResized.getMeasuredWidth(); 
    }
    
  3. Запазете 50% от тази стойност, така че имате ширината както на напълно разширения, така и на частично разширения изглед.

  4. Актуализирайте своя изглед, за да използвате пиксели (или dip) като ширина, вместо ключовата дума match_parent. Сега можете да анимирате между двете стойности, както виждате :)

person JustDanyul    schedule 13.03.2013
comment
Извинете ме, ако не разбирам напълно и/или въпросът ми не е бил съвсем ясен, но само като помислих за отговора, който предоставихте, спечели - person MaxK; 14.03.2013

можете да опитате relativeLayout и в това оформление да използвате вашето ListView добавете android:alignParentLeft="true" и android:alignParentTop="true"към вашето ListView, след което опитайте да използвате мащабната анимация в listView. Като добавите тези атрибути, вашето listView ще бъде като фиксирано към лявата страна. надявам се, че работи.

person Usman Riaz    schedule 13.03.2013