Androidのジェスチャーリスナーではなく、ビューページャーでアクティビティをスライドさせたいです。画像ビューにはページャーを追加できますが、アクティビティには追加できないので、助けてください...よろしくお願いします!
質問する
4800 次
3 に答える
3
ページャーの各ビューにフラグメントを使用します。
onCreate()
のメソッドに以下のコードを記述しますFragmentActivity
。
List<Fragment> fragments = new Vector<Fragment>();
//for each fragment you want to add to the pager
Bundle page = new Bundle();
page.putString("url", url);
fragments.add(Fragment.instantiate(this,MyFragment.class.getName(),page));
//after adding all the fragments write the below lines
this.mPagerAdapter = new PagerAdapter(super.getSupportFragmentManager(), fragments);
mPager.setAdapter(this.mPagerAdapter);
フラグメント定義のサンプル:
public class MyFragment extends Fragment {
public static MyFragment newInstance(String imageUrl) {
final MyFragment mf = new MyFragment ();
final Bundle args = new Bundle();
args.putString("somedata", "somedata");
mf.setArguments(args);
return mf;
}
public MyFragment() {}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String data = getArguments().getString("somedata");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate and locate the main ImageView
final View v = inflater.inflate(R.layout.my_fragment_view, container, false);
//...
return v;
}
編集(追加): FragmentPagerAdapter
public class MyFragmentAdapter extends FragmentPagerAdapter {
public static int pos = 0;
private List<Fragment> myFragments;
public MyFragmentAdapter(FragmentManager fm, List<Fragment> myFrags) {
super(fm);
myFragments = myFrags;
}
@Override
public Fragment getItem(int position) {
return myFragments.get(position);
}
@Override
public int getCount() {
return myFragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
setPos(position);
String PageTitle = "";
switch(pos)
{
case 0:
PageTitle = "page 1";
break;
case 1:
PageTitle = "page 2";
break;
case 2:
PageTitle = "page 3";
break;
case 3:
PageTitle = "page 4";
break;
case 4:
PageTitle = "page 5";
break;
case 5:
PageTitle = "page 6";
break;
case 6:
PageTitle = "page 7";
break;
}
return PageTitle;
}
public static int getPos() {
return pos;
}
public static void setPos(int pos) {
MyFragmentAdapter.pos = pos;
}
}
于 2013-04-22T11:31:25.127 に答える
1
ViewPager
によってオプションでサポートされてviews
いないホールドのみ、別の内部のホールドは公式に減価償却されています。activity
fragments
activity
activity
于 2013-04-22T11:42:58.250 に答える
1
このようにoverridePendingTransitionを使用 します
startActivity(YourNewActivity);
overridePendingTransition(R.anim.right_to_left,
R.anim.left_to_right);
right_to_left.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<translate
android:duration="300"
android:fromXDelta="100%"
android:fromYDelta="0%"
android:toXDelta="0%"
android:toYDelta="0%" />
</set>
left_to_right.xml
<translate
android:duration="300"
android:fromXDelta="0%"
android:fromYDelta="0%"
android:toXDelta="-100%"
android:toYDelta="0%" />
于 2013-04-22T11:34:15.640 に答える