Obecnie używam ViewFlipper
do mojej głównej aktywności z dwoma różnymi układami. Chcę użyć trzeciego układu, ale mogę znaleźć tylko polecenia showNext()
i showPrevious()
. Czy ktoś może mi pokazać, jak zaimplementować trzeci układ za pomocą ViewFlipper
?Jak korzystać z widoku flipper z trzema układami?
Odpowiedz
Wykonaliśmy dla Ciebie przykład pokazujący, jak wyświetlać różne widoki w ViewFlipper.
Układ przykładu składa się z następujących części. Dostępne są trzy przyciski opcji. A ViewFlipper jest umieszczony pod przyciskami radiowymi. Ta klapka posiada trzy różne proste widoki z różnymi tekstami.
Przyciski radiowe są następnie podłączane do odbiornika w kodzie Java, który zmieni widok wyświetlany przez ViewFlipper w zależności od tego, który przycisk radiowy jest aktualnie wybrany.
XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
<RadioGroup android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton android:layout_height="wrap_content"
android:id="@+id/radio0" android:layout_width="wrap_content"
android:text="Show View 1" android:checked="true"></RadioButton>
<RadioButton android:layout_height="wrap_content"
android:id="@+id/radio1" android:layout_width="wrap_content"
android:text="Show view 2"></RadioButton>
<RadioButton android:layout_height="wrap_content"
android:id="@+id/radio2" android:layout_width="wrap_content"
android:text="Show View 3"></RadioButton>
</RadioGroup>
<ViewFlipper android:id="@+id/ViewFlipper01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<!--adding views to ViewFlipper-->
<TextView android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="First view is now displayed"></TextView>
<TextView android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Second view is now displayed"></TextView>
<TextView android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Third view is now displayed"></TextView>
</ViewFlipper>
</LinearLayout>
JAVA
package com.test.threeviews;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.RadioButton;
import android.widget.ViewFlipper;
public class ThreeViewsinaFlipperActivity extends Activity {
RadioButton RB0;
RadioButton RB1;
RadioButton RB2;
ViewFlipper VF;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/*
* Find the views declared in main.xml.
*/
RB0 = (RadioButton) findViewById(R.id.radio0);
RB1 = (RadioButton) findViewById(R.id.radio1);
RB2 = (RadioButton) findViewById(R.id.radio2);
VF = (ViewFlipper) findViewById(R.id.ViewFlipper01);
/*
* Set a listener that will listen for clicks on the radio buttons and
* perform suitable actions.
*/
RB0.setOnClickListener(radio_listener);
RB1.setOnClickListener(radio_listener);
RB2.setOnClickListener(radio_listener);
}
/*
* Define a OnClickListener that will change which view that is displayed by
* the ViewFlipper
*/
private OnClickListener radio_listener = new OnClickListener() {
public void onClick(View v) {
switch (v.getId()) {
case R.id.radio0:
VF.setDisplayedChild(0);
break;
case R.id.radio1:
VF.setDisplayedChild(1);
break;
case R.id.radio2:
VF.setDisplayedChild(2);
break;
}
}
};
}
Napisz dziękuję za dużo – user861040
Dzięki dużo za kod – user861040
Zobacz ten prosty wykorzystanie android.widget.ViewFlipper. Dzięki niemu można tworzyć inny układ z XML, a następnie przełączać się między nimi w prosty sposób tak: przykład
ViewFlipper viewFlipper = (ViewFlipper) findViewById(R.id.myViewFlipper);
// you can switch between next and previous layout and display it
viewFlipper.showNext();
viewFlipper.showPrevious();
// or you can switch selecting the layout that you want to display
viewFlipper.setDisplayedChild(1);
viewFlipper.setDisplayedChild(viewFlipper.indexOfChild(findViewById(R.id.secondLayout)
XML z układami drzewa:
<ViewFlipper
android:id="@+id/myViewFlipper"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/firstLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
[...]
</LinearLayout>
<LinearLayout
android:id="@+id/secondLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
[...]
</LinearLayout>
<LinearLayout
android:id="@+id/thirdLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
[...]
</LinearLayout>
</ViewFlipper>
Można go używać w ten sposób również. Dołączyłem kod java i plik xml, w których przycisk służy do zmiany widoku flippera.
package com.nikhil.play.add_subtract;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ViewFlipper;
public class Flipper extends Activity implements OnClickListener {
ViewFlipper flippy;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_flipper);
flippy = (ViewFlipper) findViewById(R.id.viewFlipper1);
flippy.setOnClickListener(this);
flippy.setFlipInterval(10000);
flippy.startFlipping();
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
flippy.showNext();
}
}
XML Code
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ViewFlipper
android:id="@+id/viewFlipper1"
android:layout_width="wrap_content"
android:layout_height="match_parent" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Flipper 2" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Flipper 3" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Flipper 4" />
</ViewFlipper>
</LinearLayout>
Najprostsza odpowiedź brzmi: USE 'dla' LOOP
1 rozwiązanie linia
// j = ilość razy u chcą przesunąć widok
for(i=0;i<j;i++) viewFlipper.showNext();
Sterowanie e viewFlipper, zmieniając wartość "j".
Dzięki
xml
<ViewFlipper
android:id="@+id/viewflip"
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_weight="1"
/>
Java
public class BlankFragment extends Fragment{
ViewFlipper viewFlipper;
FragmentManager fragmentManager;
int gallery_grid_Images[]={drawable.image1, drawable.image2, drawable.image3,
drawable.image1, drawable.image2, drawable.image3, drawable.image1,
drawable.image2, drawable.image3, drawable.image1
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View rootView = inflater.inflate(fragment_blank, container, false);
viewFlipper =(ViewFlipper)rootView.findViewById(R.id.viewflip);
for(int i=0;i<gallery_grid_Images.length;i++)
{
// This will create dynamic image view and add them to ViewFlipper
setFlipperImage(gallery_grid_Images[i]);
}
return rootView;
}
private void setFlipperImage(int res) {
Log.i("Set Filpper Called", res+"");
ImageView image = new ImageView(getContext());
image.setBackgroundResource(res);
viewFlipper.addView(image);
viewFlipper.setFlipInterval(1000);
viewFlipper.setAutoStart(true);
}
- 1. Android: poziomy widok przewijania z trzema liniowymi układami
- 2. Wycinek UITextview z trzema kropkami?
- 3. Rabl.render: jak korzystać z metod pomocniczych widoku?
- 4. Jak korzystać z OnClickListener w widoku recyklera?
- 5. Vaadin: jak korzystać z Nawigatora w widoku?
- 6. Clojure: redukuj z trzema parametrami
- 7. Switch case z trzema parametrami?
- 8. CSS Flipper - iOS/Safari Issue
- 9. Jak korzystać z griddata z scipy.interpolate
- 10. Injectview (Roboguice) nie działa z wieloma układami
- 11. Python żąda biblioteki HTTPBasicAuth z trzema parametrami
- 12. Jak korzystać z Html.GetUnobtrusiveValidationAttributes()
- 13. Jak korzystać z StateListAnimator?
- 14. Jak korzystać z metody rozszerzenia w widoku ASP.NET MVC?
- 15. Jak korzystać z metody filtra linebreaksbr w widoku Django?
- 16. Jak korzystać z moich pomocników widoku w widokach ActionMailer?
- 17. Jak korzystać z widoku kontenera w systemie iOS?
- 18. Łączenie wewnętrzne z trzema tabelami w mysql
- 19. Konfiguracja Inno z trzema folderami docelowymi
- 20. Ponowne wykorzystywanie widoków w widoku list w systemie Android z 2 różnymi układami
- 21. Jaka jest nazwa małego widżetu z trzema kropkami w widoku cardview w systemie Android?
- 22. Jak korzystać z find_module?
- 23. Jak korzystać z RedirectToRoute?
- 24. Jak korzystać z WSDL
- 25. Jak korzystać z kCTSuperscriptAttributeName?
- 26. Jak korzystać z pgdb.executemany?
- 27. Jak korzystać z org.mockito.AdditionalMatchers.gt?
- 28. Jak korzystać z createTransport?
- 29. Jak korzystać z UIRemoteNotificationTypeVoIP?
- 30. Jak korzystać z onResume()?
Jeśli masz 3 układy w viewflipper, showNext() pokazuje widok sekwencyjnie, tzn showNext() aftrer 2. układ pokazuje 3rd układ. – sat
Spróbuj użyć tej metody: public void setDisplayedChild (int whichChild), aby ustawić swoje widoki. – HenrikS
Czy można przejść z pierwszego widoku do drugiego widoku z powrotem do pierwszego, a następnie trzeciego widoku? – user861040