VIewSwitcherことでビューを切り替えます。これはまだノートを覚えておくことが、理解していない、baseAdapterを使用しています。
< RelativeLayoutの のxmlns:アンドロイド= "http://schemas.android.com/apk/res/android" アンドロイド:layout_width = "match_parent" アンドロイド:layout_heightは= "match_parentは" > <! - ViewSwitcherコンポーネントを定義します- > < viewSwitcher Androidは:上記のIDを述べ= "@ +上記のID / viewSwitcher言及し、" アンドロイド:layout_width = "match_parent" アンドロイド:layout_height = "match_parentを" /> <! - 画面上にスクロールするボタンが定義されて- > < ボタン アンドロイド:上記のIDを述べ= "上記のid @ / button_prev "+ アンドロイド:layout_width = "wrap_content" アンドロイド:layout_height = "wrap_content" アンドロイド:layout_alignParentBottom = "true"の アンドロイド:layout_alignParentStartは= "true"の アンドロイド:のonClickは= "PREV" アンドロイド:テキスト= "&LT;" /> <! - 定义滚动到下一屏的按钮- > < ボタン アンドロイド:ID = "@ + ID / button_next" アンドロイド:layout_width = "wrap_content" のandroid:layout_height = "wrap_content" アンドロイド:layout_alignParentBottom = "真" アンドロイド:layout_alignParentEnd =" アンドロイド:テキスト= "&GT;" /> </ RelativeLayout >
パッケージには違約金com.example.viewswitcher インポートandroid.app.Activity インポートandroid.os.Bundle インポートandroid.view.ViewGroup インポートandroid.graphics.drawable.Drawable インポートandroid.view.LayoutInflater インポートandroid.view.View インポート android.widget。* // 画面表示の数表示するための各アプリケーションプログラムのための定数を定義し、constとヴァルは= 12 NUMBER_PER_SCREENある クラスがMainActivity:活動() { // すべてのアプリケーションに格納されたリスト収集システムプライベート・ヴァル・アイテム=のArrayList <のDataItem> () // 現在画面いくつかの上に表示されている番組録画プライベート = -1 VARのscreenNoを // プログラムを保存するための画面の合計数は、占有 プライベートのInt = 0:VARのScreenCountは プライベート ViewSwitcher =:VARスイッチャー?ヌル // LayoutInflaterオブジェクトを作成する プライベート LayoutInflater =?:ようにするvarインフレータをヌル // 提供される画面表示あたりのGridViewの責任BaseAdapterリスト項目 プライベートヴァルアダプター= オブジェクト:BaseAdapter() { オーバーライド楽しい同様にgetCount():のInt { // あなたが最後の画面に到達し、そしてアプリケーションの数している場合は割り切れないNUMBER_PER_SCREENの リターン IF(screenNo == ScreenCountは- 1 && items.size NUMBER_PER_SCREEN%が!= 0 ) { // プログラムの数は、最後の画面がNUMBER_PER_SCREENの残りのアプリケーションの数を示します %items.size NUMBER_PER_SCREEN } 他NUMBER_PER_SCREEN // そうでない場合は、画面ごとに表示プログラムの数はNUMBER_PER_SCREENある } オーバーライドのgetItemファン(位置:INT):のDataItem { // screenNoに係る位置リスト項目データの計算 戻り項目[screenNo * + NUMBER_PER_SCREENを位置] } オーバーライド楽しいgetItemId(位置:INT):ロング { 返すposition.toLong() } (:INT、convertView:表示位置のオーバーライドgetViewメソッド楽しい?、親:のViewGroup):ビュー { VARのビューを= ConvertView IF(convertView == NULL ) { // ファイルのレイアウトをロードR.layout.labelicon ビュー=インフレータよう?.Inflate(R.layout.labelicon、NULL ) } // R.layout.labeliconコンポーネントレイアウトファイルImageViewのを取得します以下のため、およびアイコンを設定 ヴァルImageViewの=ビュー?.findViewById <ImageViewの> (R.id.imageview) ImageViewの?.setImageDrawable(.drawableのgetItem(位置)) // R.layout.labeliconレイアウトファイルのTextViewコンポーネントを取得し、そして、テキスト設定 ヴァルビューのTextViewを= !!。findViewById <TextViewに> (R.id.textview) textView.text =getItem(位置).dataName 返すビューを } } // クラス内のアプリケーションを表す クラスのDataItem(dataName VAR?:VARの文字列、描画可能:? Drawableの) オーバーライドのonCreate楽しい(savedInstanceState:バンドル?) { スーパー.onCreate(savedInstanceState) setContentViewを(R.layout.activity_main) インフレータよう = LayoutInflater.from(この@MainActivity) // 、リスト要素40のセットを作成アナログ用途に含む40 のために(0..39においてI ) { ヴァル・ラベル = 「」+ I ヴァル描画可能 = resources.getDrawable(R.mipmap.ic_launcher、NULL ) のVal項目 = のDataItem(ラベル、描画可能) Items.Add(項目) } // の総数によって占有コンピューティングアプリケーション画面 // アプリケーションの数ができる場合割り切れるNUMBER_PER_SCREENは、除算の結果は、スクリーンの総数である // 割り切れない場合、スクリーンの総数は除算の結果と組み合わせなければならない。1 ScreenCountは= IF(items.size%のNUMBER_PER_SCREEN == 0)items.size / NUMBER_PER_SCREEN 他 items.size / +。1 NUMBER_PER_SCREEN スイッチャー = findViewById(R.id.viewSwitcher) スイッチャー?.setFactory { //R.layout.slidelistviewコンポーネントが実際にGridViewの構成要素であるロード ?その.inflate(R.layout.slidelistview、ようのInflater ヌル) } // ページがロードされたときに最初の画面を表示するには、 次の(ヌル) } ビュー:楽しい次(Vを?) { IF(screenNo <ScreenCountは- 1 ) { screenNo ++ // 表示処理がアニメーション化さViewSwitcher成分 ?スイッチャー.setInAnimation(この、R.anim.slide_in_right) // 隠すViewSwitcher組立工程アニメーション スイッチャーを?。 setOutAnimation(この、R.anim.slide_out_left) // コントロール次の画面は、GridViewの対応するアダプタが表示されます GridViewのAS(スイッチャー?.NextView)を.adapter = アダプター //は、次の画面を表示するには右のボタンをクリックします // ジェスチャ検出を学習した後に、また、ジェスチャ検出によって実現次の画面表示させることができる )スイッチャ.showNextを(? // ① } } ファンPREV(V:ビュー) { IF(screenNo> 0 ) { screenNo - // 表示処理アセンブリViewSwitcherアニメーション スイッチャーを?.setInAnimation(この、android.R.anim.slide_in_left) // 隠しプロセスのコンポーネントをアニメーションViewSwitcher スイッチャー?.setOutAnimation(この、android.R.anim.slide_out_right) // コントロール次の画面が表示されますGridViewの対応アダプター (スイッチャー?GridViewのAS .nextView).adapter = アダプタ // ディスプレイの左ボタンをクリックしてください画面には、当然のことながら、ジェスチャーを使用することができる // ジェスチャ検出を学習した後、また、ジェスチャ検出を介して表示画面上に実装することができる スイッチャー?.showPrevious() // ② } } }
<?のXmlバージョン= "1.0"エンコード= "UTF-8" ?> < SETののxmlns:アンドロイド= "http://schemas.android.com/apk/res/android" > <! - セット左から引きずり出さアニメーション アンドロイド:期間は、アニメーションの継続時間を指定します。 - > < 翻訳 アンドロイド:fromXDelta = "0" アンドロイド:toXDelta = " - 100%P" のandroid:期間= "アンドロイド@:整数/ config_mediumAnimTimeを" /> </ SET >
<?のXmlバージョン= "1.0"エンコード= "UTF-8" ?> < SETののxmlns:アンドロイドは= "http://schemas.android.com/apk/res/android" > <! - セットは右ドラッグから来てアニメーション アンドロイド:期間は、アニメーションの継続時間を指定します 。 - > < 翻訳 アンドロイド:fromXDelta = "100%P" のAndroid:toXDelta = "0" のandroid:期間= "アンドロイド@:整数/ config_mediumAnimTime" /> </ SET >