/ / ImageView v RelativeLayout ostrihané, keď je layout_marginLeft alebo layout_marginTop nastavené príliš vysoko - android, android-layout

ImageView v RelativeLayout divne pripnutý, keď layout_marginLeft alebo layout_marginTop nastaviť príliš vysoko - android, android layout

Takže dovoľujem používateľovi pretiahnuťRelativeLayout obsahujúce v ImageView (ako aj niektoré ďalšie veci) okolo obrazovky. Rozloženie zabalí ImageView dovnútra a existuje ďalšie relatívne usporiadanie, ktoré umiestni veci na vrch ImageView. Niečo také:

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="center"
/>

<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">

... a couple text views that also fill parent

</RelativeLayout>
</RelativeLayout>

Dynamicky nastavujem src na ImageView.

Užívateľ je schopný pretiahnuť rozloženie v rámci iného RelativeLayout spotrebuje celú obrazovku. Keď to používateľ posunie, zmení sa ľavý a horný okraj. Vidím zvláštny problém, keď keď rozloženie dosiahne pravú alebo dolnú hranu obrazovky, rozloženie (a teda ImageView, že sa obaluje) je ...

  • Pripnuté na ľavej strane, pretože pravá strana rozloženia zhasne z pravej strany obrazovky
  • Pripnuté na hornej strane, keď spodná strana rozloženia zhasne z dolnej strany obrazovky.

Keď je rozloženie presunuté na ľavý alebo horný okraj obrazovky, nie je problém.

Skúsil som zmeniť typ mierky ImageViewna všetky ostatné hodnoty predtým, ako som si uvedomil, že problém sa zdá byť ten, že ho obklopuje RelativeLayout (napr. keď zmením scaleType ImageView na fitXY, obraz sa rozžiari na malú veľkosť, keď sa rozloženie presunie z okraja obrazovky).

Tiež som sa pokúsil prepnúť každý parameter rozloženia Imohli nájsť, vrátane klipuDeti, clipPadding, adjustViewBounds, okraj, výplň atď. a nič, čo naozaj nefunguje. Zamýšľam sa nad týmto jednoduchým problémom, o ktorom som si myslel, že by mal fungovať iba s predvolenými parametrami. Aby som to vyjasnil, očakávam, že sa stane, že keď pretiahnem rozloženie mimo okraj obrazovky, časť, ktorá je mimo obrazovky, sa už viac viac nevidela a veci, ktoré sú na obrazovke, zostanú také, aké sú.

odpovede:

1 pre odpoveď č. 1

Nemyslím si, že by Margin normálne povolil časťváš pohľad bude vykreslený mimo obrazovku. Budete musieť maximalizovať okraj tak, aby okraj + veľkosť <rodičovská veľkosť (aby zostal na obrazovke). Môžete však skúsiť nastavenie záporného pravého a dolného okraja (určite to bude fungovať).