1
A
回答
3
基本上你需要使用一個名爲ViewPager
的元素,並且每個頁面將是一個不同的Fragment
。你可以使用this庫來幫助你。隨時提問和指導。
編輯 - 詳細說明:
兩個圖像添加到您的繪製文件夾 - 未選擇點之一,所選擇的點之一。 添加這兩個NuGet包(在解決方案資源管理器中右鍵單擊您的項目,單擊管理NuGet包並搜索):Xamarin.Android.Support.v4和Xamarin.Android.Support.v7.AppCompat。
然後你Main.axml佈局,把這個:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/ThemeOverlay.AppCompat"
app:titleMarginTop="15dp"/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<LinearLayout
android:id="@+id/viewPagerCountDots"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_gravity="bottom|center_horizontal"
android:orientation="horizontal">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_margin="10dp"
android:src="@drawable/ViewPagerDotSelected"/>
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_margin="10dp"
android:src="@drawable/ViewPagerDotUnselected"/>
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_margin="10dp"
android:src="@drawable/ViewPagerDotUnselected"/>
</LinearLayout>
</FrameLayout>
</LinearLayout>
你可以玩的寬度,高度,以及後來的保證金。
接下來,創建將包含您的不同頁面(或「步驟」)的新片段。在這個例子中,我創建了三個。
做到這一點三倍,同時改變文件及其內容的名稱:
右鍵單擊項目>>添加>>新產品>>片段,張貼下面的代碼爲例:
public class Fragment1 : Fragment
{
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Use this to return your custom view for this Fragment
var view = inflater.Inflate(Resource.Layout.Fragment1Layout, container, false);
//Here goes what you want to do within the fragment.
return view;
}
}
替換每個片段的類和佈局的名稱。
然後右鍵單擊您的佈局文件夾>>添加新項目>> Android佈局。
帖子下面的代碼爲例:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="FRAGMENT 1"
android:layout_gravity="center"/>
</LinearLayout>
做到這一點三倍,而更改名稱和內容。
現在,在你MainActivity.cs,張貼下面的代碼命名空間名稱後:
[Activity(Label = "ViewPagerIndicator", MainLauncher = true, Icon = "@drawable/icon", Theme = "@style/Theme.AppCompat.Light.DarkActionBar")]
public class MainActivity : AppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
SetSupportActionBar(toolbar);
SupportActionBar.Title = "ViewPager Indicator Dots";
var pager = new ViewPagerAdapter(SupportFragmentManager);
var viewPager = FindViewById<ViewPager>(Resource.Id.viewPager);
viewPager.Adapter = pager;
viewPager.PageSelected += ViewPager_PageSelected;
}
private void ViewPager_PageSelected(object sender, ViewPager.PageSelectedEventArgs e)
{
var viewPagerDotsLayout = FindViewById<LinearLayout>(Resource.Id.viewPagerCountDots);
for (int i = 0; i < viewPagerDotsLayout.ChildCount; i++)
{
ImageView dotImage = (ImageView)viewPagerDotsLayout.GetChildAt(i);
if (i == e.Position)
dotImage.SetImageResource(Resource.Drawable.ViewPagerDotSelected);
else
dotImage.SetImageResource(Resource.Drawable.ViewPagerDotUnselected);
}
}
}
public class ViewPagerAdapter : FragmentStatePagerAdapter
{
int numberOfFragments = 3;
public ViewPagerAdapter(Android.Support.V4.App.FragmentManager fm) : base(fm)
{
}
public override int Count
{
get
{
return numberOfFragments;
}
}
public override Android.Support.V4.App.Fragment GetItem(int position)
{
switch (position)
{
case 0:
return new Fragment1();
case 1:
return new Fragment2();
case 2:
return new Fragment3();
default: return new Fragment1();
}
}
}
運行它,看看它是否工作......
相關問題
- 1. Django - 表單嚮導一步一步
- 2. Android嚮導式(一步一步)應用程序
- 3. 同步意見
- 4. 在Android Studio中導入庫:需要一步一步的解釋
- 5. 如何一步一步導入Greendroid庫?
- 6. 導出類型一步一步
- 7. 如何一步的引導機制添加步到Android
- 8. SAPUI5嚮導:如何跳過嚮導的一個步驟?
- 9. Android應用指南一步一步
- 10. 一步一步的火法
- 11. 智能嚮導不加載第一步
- 12. 嚮導不會進入下一步
- 13. django表單嚮導ajax下一步
- 14. Lucene.Net一步一步
- 15. 如何在Android中動畫一步發光更亮一步步
- 16. Drupal的ctools多步向導
- 17. 一步一步的指導讓Scala在.net上運行?
- 18. 需要一步一步的指導SVN通知
- 19. ASP嚮導步驟
- 20. Xamarin Android正確的異步方式
- 21. Android:刷一下下一步?
- 22. 如何一步一步改變android studio的內存堆大小
- 23. 產生的Android谷歌地圖鍵 - 一步一步
- 24. 創建科爾多瓦android插件的一步一步指南
- 25. 在android中一步一步調試的問題
- 26. 異步補充意見,片段中的Android
- 27. Uri投擲優步意向
- 28. android-如何製作分步向導
- 29. Rails 3註冊步驟一步一步
- 30. SSAS的實際實施(一步一步)
附加信息:每個點是一個註冊頁面。 – Yaza
對不起,不回覆。我沒有忘記你。 :)我會嘗試向你展示在接下來的幾天內要做什麼的樣本。 – amitairos
嗨阿米特羅斯,我也試圖實現它,但我的視覺工作室正在瘋狂。所以我試圖解決這個問題。但是,謝謝你的回答和你的努力來幫助我。我會等你的樣品。 – Yaza