2015-03-06 11 views
7

Kolejne pytania dotyczące ustawiania pozycji widoku. Jeśli chcesz przenieść się widok wokół następnie można zrobić setX, setTranslationX, setLeft lub LayoutParam.leftMargin Offcourse jest także przesłanianie metody OnDraw i korzystania osnowy/Bitmap/płótno operację.setX, setTranslationX, setLeft, LayoutParam.leftMargin, Matrix .. Co za różnica

Zastanawiam się, co za różnica. Czy wszystkie one w ostatniej chwili dostosowują tę samą wartość, która jest współrzędną x widoku? Byłoby dobrze mieć to wszystko w jednym poście dla przyszłych czytelników oraz

tak daleko wiem,

  • LayoutParam.LeftMargin: jest dostępny dla wszystkich API (specyficzne pod Api 8)
  • SetTranslation: Różnica między oryginalną lewą granicą widoku a nową lewą stroną. Chociaż słyszałem, że może nie jest trwałe?

Ktoś może rzucić światło na różnice i czy mają one wpływ na różne właściwości lub tę samą nieruchomość?

Odpowiedz

2

wierzę, że główna różnica między setLeft i setX() jest setLeft() jest w stosunku do jego widoku macierzystego, gdzie setX() tylko ustala położenie w stosunku do całego ekranu, który jest taki sam jak setTranslationX().

W kategoriach setLeft() oznacza to, że układ układu może zmienić położenie układu. Na przykład, jeśli użylibyśmy setLeft podczas przewijania przez RecyclerView, system odpowiednio zmieniłby swoją pozycję, więc właściwym zastosowaniem w tym przypadku byłby setX().

Powiązane problemy