2014-10-08 68 views
5

幾款股票應用使用這種「頁面點」來引導用戶。當我實現2D拾取器時,我發現頁面點不是它的一部分。我試圖使用圖像來模擬效果,但當用戶在頁面之間滑動時,我的ImageView隨頁面一起移動。如何爲Android Wear中的2D拾取器添加頁面點?

如何實現這種「頁面點」,當用戶滑動時不會移動?此外,我可以控制這些點是否會出現並消失?

enter image description here

回答

17

您現在可以(如1.1版)使用DotsPageIndicator類,像這樣:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <android.support.wearable.view.GridViewPager 
     android:id="@+id/pager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:keepScreenOn="true" /> 

    <android.support.wearable.view.DotsPageIndicator 
     android:id="@+id/indicator" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal|bottom"/> 
</FrameLayout> 

然後在您的活動類:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.my_gridview); 

    final GridViewPager pager = (GridViewPager) findViewById(R.id.pager); 
    DotsPageIndicator dots = (DotsPageIndicator) findViewById(R.id.indicator); 
    dots.setPager(pager); 
} 
+0

簡單而正常的作品!這應該是被接受的答案。 – 2015-08-19 20:06:55

+1

@ChadSchultz完成:) – user1032613 2016-07-16 14:41:14

+0

@cwlq,如何在Android Wear 2.0中實現相同? – kavie 2017-12-12 03:36:17

1

爲了使點不與頁面移動,把它們放在活動的佈局,而不是單獨的頁面片段。例如:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.wearable.view.GridViewPager 
     android:id="@+id/grid" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <LinearLayout 
     android:id="@+id/page_dots_container" 
     android:orientation="horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_alignParentBottom="true" /> 

</RelativeLayout> 

根據您的具體應用,您可以填寫XML的page_dots_container佈局或用小圓點ImageViews編程填充它。然後在GridViewPager上設置一個OnPageChangeListener - 當所選頁面改變時,更新點ImageViews以反映選擇哪個頁面。

有關完整示例,請參閱JumpingJack Wear示例(位於sdk/samples/android-20/wearable/JumpingJack下)。

+0

非常感謝您的回答,和你鏈接到示例項目。 – user1032613 2014-10-17 23:21:12

相關問題