Ik ben een Android App aan het maken waarin een switch een LinearLayout eronder laat zien. By default staat deze switch op "Off" en is de linearview eronder verborgen. Gezien de method waarnaar de switch refereed niet wordt gebruikt bij het opstarten heb ik de in de xml dit gedaan:
En de CustomOnCheckedChangeListener ziet er als volgt uit:
Dit werk allemaal top, maar nu wil ik iets nieuws doen. Wanneer deze view een id ontvangt wil ik de switch op "On" zetten en de corresponderende view laten zien. Dus ik doe een simpele toggle van mijn switch:
Ik heb geprobeerd de layout_height geprobeerd op "wrap_content" te zetten vanuit de java code, maar helaas bestaat er geen setLayoutHeight method in een LinearLayout.
Heeft iemand enig idee hoe ik deze method kan aanroepen op het moment dat ik de switch toggle()? Of weet iemand hoe ik deze method manueel éénmaal kan aanroepen? Alle tips zijn welkom!
ps. Ik wilde nog [Android] voor mn titel zetten, maar ik kan mn title nu niet meer veranderen..
code:
. Vervolgens laat ik de methode CustomOnCheckedChangeListener als volgt naar mijn Switch luisteren:1
| android:layout_height="0dp" |
code:
1
| mySwitch.setOnCheckedChangeListener(new CustomOnCheckedChangeListener(findViewById(R.id.my_view))); |
En de CustomOnCheckedChangeListener ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| public class CustomOnCheckedChangeListener implements CompoundButton.OnCheckedChangeListener {
private final View[] mViews;
public CustomOnCheckedChangeListener(View... views) {
mViews = views;
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
for (View v : mViews) {
LinearLayout layout = (LinearLayout) v;
if (isChecked) {
Animation anim = expand(layout, true);
layout.startAnimation(anim);
} else {
Animation anim = expand(layout, false);
layout.startAnimation(anim);
}
}
}
} |
Dit werk allemaal top, maar nu wil ik iets nieuws doen. Wanneer deze view een id ontvangt wil ik de switch op "On" zetten en de corresponderende view laten zien. Dus ik doe een simpele toggle van mijn switch:
code:
De switch wordt nu wel omgezet, maar de method wordt niet aangezwengeld en dus wordt de LinearLayout eronder niet laten zien.1
| mySwitch.toggle(); |
Ik heb geprobeerd de layout_height geprobeerd op "wrap_content" te zetten vanuit de java code, maar helaas bestaat er geen setLayoutHeight method in een LinearLayout.
Heeft iemand enig idee hoe ik deze method kan aanroepen op het moment dat ik de switch toggle()? Of weet iemand hoe ik deze method manueel éénmaal kan aanroepen? Alle tips zijn welkom!
ps. Ik wilde nog [Android] voor mn titel zetten, maar ik kan mn title nu niet meer veranderen..