Nel mio file di layout principale, ho un RelativeLayout, con un peso di 1 (in pratica per visualizzare una mappa) sopra un LinearLayout con un peso di 2, ha dichiarato in questo modo:modificare il peso del layout con un'animazione
<LinearLayout
android:id="@+id/GlobalLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/UpLayout"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="1" >
</RelativeLayout>
<LinearLayout
android:id="@+id/DownLayout"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="2"
android:orientation="vertical" >
</LinearLayout>
</LinearLayout>
DownLayout contiene un elenco di elementi, quando faccio clic su un elemento, vorrei modificare il peso di DownLayout per 4, quindi il layout superiore (la mappa) richiede solo 1/5 dello schermo anziché 1/3.
sono riuscito a farlo modificando le LayoutParams:
LinearLayout linearLayout = (LinearLayout) mActivity.findViewById(R.id.DownLayout);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
params.weight = 4.0f;
linearLayout.setLayoutParams(params);
Funziona ma non sono soddisfatto, il cambiamento è troppo immediato, non c'è transizione, mentre mi piacerebbe che fosse liscia. C'è un modo per usare l'animazione per questo?
ho trovato alcuni esempi con ObjectAnimator di cambiare il weightSum, ma non è così voglio voglio (se cambio solo questa proprietà, ho un po 'di spazio libero sotto il mio layout giù):
float ws = mLinearLayout.getWeightSum();
ObjectAnimator anim = ObjectAnimator.ofFloat(mLinearLayout, "weightSum", ws, 5.0f);
anim.setDuration(3000);
anim.addUpdateListener(this);
anim.start();
Is c'è un modo per usare ObjectAnimator (o qualcos'altro) per farlo?
Grazie!
Grazie per quello! Ho finito per fare qualcosa di completamente diverso, senza animazione, ma proverò sicuramente il tuo metodo! – jbihan
@jbihan! puoi condividere il tuo metodo per risolvere questo problema? –
Ciao! In realtà, come ho detto sopra, ho fatto qualcosa senza animazione, nel senso che ho usato solo 2 semplici attività, non sono riuscito ad avere un'animazione abbastanza fluida da renderlo bello – jbihan