人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

LINE NEWSのようなタブの実装方法を教えてください。

Androidアプリ開発について質問です。
スマホアプリLINE NEWSのようなタブ機能を実現したいのですが、幾つかつまずく点がございまして困っております。
・タブ部分が独立して動作する(タブスワイプ時)
・ページの両端までいったときページがループする
・現在表示しているページのタイトル(タブ)を枠で囲む

上記について参考になるサイトや、実装方法をご存知の方がいらっしゃいましたらご教授お願いします。

●質問者: yunbo777
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● sasada

スワイプを含むタブの実装についての例です。
http://furudate.hatenablog.com/entry/2013/06/10/232244
ご参考になれば良いのですが。


yunbo777さんのコメント
ご回答ありがとうございます。 早速試してみます。

質問者から

sasada様コメントありがとうございます。
sasada様よりご指摘を頂きましたので、現在作成中のソースコードを公開させていただきます。
不慣れなものでもし見にくかったらすみません・・・
現在、PagerTitleStripを用いて実装を試みているのですが、他に何か有用なライブラリなどもございましたら教えていただけるとありがたいです。


【activity_main.xml】
-----------------------------------
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<android.support.v4.view.PagerTitleStrip
android:id="@+id/strip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:paddingBottom="15dp"
android:paddingTop="15dp" />

</android.support.v4.view.ViewPager>
-----------------------------------

【fragment_main.xml】
-----------------------------------
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textStyle="bold"
android:layout_centerInParent="true" />

</RelativeLayout>
-----------------------------------

【MainActivity.java】
-----------------------------------
package com.example.tabdemo;

import android.support.v4.app.FragmentActivity;
import android.support.v4.view.PagerTitleStrip;
import android.support.v4.view.ViewPager;
import android.os.Bundle;
import android.util.TypedValue;

public class MainActivity extends FragmentActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ViewPager pager = (ViewPager) findViewById(R.id.pager);

PagerTitleStrip strip = (PagerTitleStrip) findViewById(R.id.strip);
strip.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
strip.setTextSpacing(50);
strip.setNonPrimaryAlpha(0.3f);

CustomFragmentPagerAdapter adapter = new CustomFragmentPagerAdapter(getSupportFragmentManager());

PageItem pageItem1 = new PageItem();
pageItem1.text = "AAA";
adapter.addItem(pageItem1);

PageItem pageItem2 = new PageItem();
pageItem2.text = "BBB";
adapter.addItem(pageItem2);

PageItem pageItem3 = new PageItem();
pageItem3.text = "CCC";
adapter.addItem(pageItem3);

pager.setAdapter(adapter);
}
}
-----------------------------------

【CustomFragmentPagerAdapter.java】
-----------------------------------
package com.example.tabdemo;

import java.util.ArrayList;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class CustomFragmentPagerAdapter extends FragmentPagerAdapter {

private ArrayList<PageItem> mList;

public CustomFragmentPagerAdapter(FragmentManager fm) {
super(fm);
mList = new ArrayList<PageItem>();
}

@Override
public Fragment getItem(int position) {
PageItem item = mList.get(position);

MainFragment mainFragment = new MainFragment();

Bundle bundle = new Bundle();
bundle.putString("text", item.text);
mainFragment.setArguments(bundle);

return mainFragment;
}

@Override
public CharSequence getPageTitle(int position) {
return mList.get(position).text;
}

@Override
public int getCount() {
return mList.size();
}

public void addItem(PageItem item) {
mList.add(item);
}
}
-----------------------------------

【MainFragment.java】
-----------------------------------
package com.example.tabdemo;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class MainFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

View view = inflater.inflate(R.layout.fragment_main, container, false);

String text = (String) getArguments().getString("text");
TextView textView = (TextView) view.findViewById(R.id.text);
textView.setText(text);

return view;
}
}
-----------------------------------

【PageItem.java】
-----------------------------------
package com.example.tabdemo;

public class PageItem {

public String text;
}
-----------------------------------


関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ