- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我已经做了大约 3 天,查找各种网站以供引用,但我被卡住了。我正在使用为您提供标准虚拟部 fragment 段的滑动和选项卡布局。但是我有 3 个单独的 fragment ,我想为其显示不同的 .xml 布局。这是困扰我的代码部分:
import java.util.Locale;
import android.app.ActionBar;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class MainActivity extends FragmentActivity implements ActionBar.TabListener {
/**
* The {@link android.support.v4.view.PagerAdapter} that will provide
* fragments for each of the sections. We use a
* {@link android.support.v4.app.FragmentPagerAdapter} derivative, which
* will keep every loaded fragment in memory. If this becomes too memory
* intensive, it may be best to switch to a
* {@link android.support.v4.app.FragmentStatePagerAdapter}.
*/
SectionsPagerAdapter mSectionsPagerAdapter;
/**
* The {@link ViewPager} that will host the section contents.
*/
ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Set up the action bar.
final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Create the adapter that will return a fragment for each of the three
// primary sections of the app.
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
// When swiping between different sections, select the corresponding
// tab. We can also use ActionBar.Tab#select() to do this if we have
// a reference to the Tab.
mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
}
});
// For each of the sections in the app, add a tab to the action bar.
for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
// Create a tab with text corresponding to the page title defined by
// the adapter. Also specify this Activity object, which implements
// the TabListener interface, as the callback (listener) for when
// this tab is selected.
actionBar.addTab(
actionBar.newTab()
.setText(mSectionsPagerAdapter.getPageTitle(i))
.setTabListener(this));
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
// When the given tab is selected, switch to the corresponding page in
// the ViewPager.
mViewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
/**
* A {@link FragmentPagerAdapter} that returns a fragment corresponding to
* one of the sections/tabs/pages.
*/
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a DummySectionFragment (defined as a static inner class
// below) with the page number as its lone argument.
Fragment fragment = new DummySectionFragment();
Fragment fragment2 = new DummySectionFragment2();
Fragment fragment3 = new DummySectionFragment3();
Bundle args = new Bundle();
args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, position + 1);
args.putInt(DummySectionFragment2.ARG_SECTION_NUMBER, position + 2);
args.putInt(DummySectionFragment3.ARG_SECTION_NUMBER, position + 3);
fragment.setArguments(args);
fragment2.setArguments(args);
fragment3.setArguments(args);
return fragment2;
}
@Override
public int getCount() {
// Show 3 total pages.
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
Locale l = Locale.getDefault();
switch (position) {
case 0:
return getString(R.string.title_section1).toUpperCase(l);
case 1:
return getString(R.string.title_section2).toUpperCase(l);
case 2:
return getString(R.string.title_section3).toUpperCase(l);
}
return null;
}
}
/**
* A dummy fragment representing a section of the app, but that simply
* displays dummy text.
*/
public static class DummySectionFragment extends Fragment {
/**
* The fragment argument representing the section number for this
* fragment.
*/
public static final String ARG_SECTION_NUMBER = "section_number";
public DummySectionFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
TextView dummyTextView = (TextView) rootView.findViewById(R.id.section_label);
dummyTextView.setText(Integer.toString(getArguments().getInt(ARG_SECTION_NUMBER)));
return rootView;
}
}
public static class DummySectionFragment2 extends Fragment {
/**
* The fragment argument representing the section number for this
* fragment.
*/
public static final String ARG_SECTION_NUMBER = "section_number";
public DummySectionFragment2() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView2 = inflater.inflate(R.layout.fragment_2, container, false);
return rootView2;
}
}
public static class DummySectionFragment3 extends Fragment {
/**
* The fragment argument representing the section number for this
* fragment.
*/
public static final String ARG_SECTION_NUMBER = "section_number_3";
public DummySectionFragment3() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView3 = inflater.inflate(R.layout.fragment_3, container, false);
return rootView3;
}
}
}
这将返回 fragment 2。我想在选择每个选项卡时显示 3 个 fragment 。我该怎么做?我猜这就是返回的内容吧?
编辑.. 我包含了整个 java 类.. 希望我能解决这个问题.. How do I use FragmentPagerAdapter to have tabs with different content?我刚刚尝试了以下(第二个答案,因为我不明白第一个答案的意思)它没有用
最佳答案
这样使用方法:
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a DummySectionFragment (defined as a static inner class
// below) with the page number as its lone argument.
switch (position) {
case 0:
Fragment fragment = new DummySectionFragment();
Bundle args = new Bundle();
args.putInt(fragment.ARG_SECTION_NUMBER, position + 1);
fragment.setArguments(args);
return fragment;
case 1:
Fragment fragment2 = new DummySectionFragment2();
Bundle args = new Bundle();
args.putInt(fragment2 .ARG_SECTION_NUMBER, position + 2);
fragment2.setArguments(args);
return fragment2;
case 2:
Fragment fragment3 = new DummySectionFragment3();
Bundle args = new Bundle();
args.putInt(fragment3.ARG_SECTION_NUMBER, position + 3);
fragment3.setArguments(args);
return fragment3;
default:
return null;
}
}
关于android - Tab 和 Swipe - 编辑 getItem 以显示 3 个不同的 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17380391/
好的,这基本上是我想要完成的:我有一个 FragmentStatePagerAdapter 并且偶尔想禁用滑动功能并使用按钮前进/后退。 从我在 MyFragmentStatePagerAdapter
我正在尝试使用 ( https://github.com/marmorkuchen-net/angular-swipe ) 来在我向下滑动时调用函数,但是,它不起作用。我按照 README 提供的说明
我正在构建一个跳跃运动控制的音乐播放器,菜单系统是通过跳跃运动控制的。 上下倾斜可滚动浏览菜单项,向右滑动可选择该项目,向左滑动可返回上一级菜单。 我遇到的问题是,当您在“艺术家列表”菜单上向右滑动时
我正在构建一个应用程序,允许用户使用水平滑动浏览不同的屏幕,但这些屏幕还包含垂直 ScrollView 。如果垂直滚动不是 100% 垂直(希望有意义),android 似乎会将垂直滚动检测为水平滑动
这是我的问题(在 Xcode 6.0.1 上,使用 Swift 编码,使用 iOS 7.1 和 8.0):我正在使用滑动手势识别器(使用 Action Segue)从一个 View 转到另一个 Vie
最近我发现 iPad 的触摸行为很奇怪。我有一个 UITableView,它在滑动时从屏幕的右边缘滑入(就像 Facebook 应用程序在左侧)。在我的实现中,我添加了一条 UIView 并添加了滑动
我有一个填充 100% 页面高度的父元素和其中的几个子元素。在父级上向右滑动会切换侧面菜单,但我想阻止此功能并在其子级上向右滑动时触发 childAction()。 ...
我正在使用 angular 的 ng-swipe-left 和 ng-swipe-right 来捕捉滑动事件(触摸)。我试图在滑动过程中根据滑动速度和方向旋转图像。问题是我只能在滑动结束时捕捉到事件。
我正在尝试调试一个奇怪的问题。我有创建 leftswiperecognizer 的代码,将其分配给 View ,并有一个处理程序可以在滑动时更改某些元素。 此代码的多个版本运行良好。然而,在一个 VC
当点击 UIPageControl 的侧面时,我可以使用什么方法来更新 UIScrollView?滑动 UIScrollView 时,UIPageControl 会正确更新,但如果我点击 UIPage
我正在研究 53 岁的 Paper App,发现他们用于各种手势的方式非常有趣。 为了将手势与他们用于绘图的 PAN 区分开来,要翻页,您需要从屏幕(如 iPad 屏幕外部)滑动到 View 中才能工
如何编写程序来实现滑动 MUITableCell 的功能。我已经有一个我一直在使用的 MUITableCell 的子类。我是否只处理其中的滑动,就像处理 View 一样? 最佳答案 您需要实现此方法:
我在 js 上编写了简单的滑动功能。 On desktop works fine everything, but on smartphones it doesn't work. 这是我的 JavaSc
我在移动页面上有此代码: jQuery(document).ready(function($){ $('a').on('click touchend', function(e) {
我目前正在为 Android 制作自己的自定义启动器。到目前为止一切正常。但有一点我需要帮助。我想做一些事情,比如在主屏幕上向上滑动以显示所有已安装的应用程序。因此我不想开始新的 Activity ,
我将自定义 ItemTouchHelper.SimpleCallback 类添加到我的 RecyclerView 以添加“滑动时关闭”功能,用户可以向左滑动项目并获取项目从列表中删除。 我通过将 dX
我正在使用 swipe.js在一个项目中。 我正在动态更改 slider 中的数据。 当数据发生变化时,我只是创建了一个新的滑动对象,但它并没有破坏回调等,这会导致问题。我怎样才能销毁滑动对象,或者至
我有一个小问题 em 卡住了..我有一个自定义 UITableViewCell,在它的 textView 上我添加了 2 个手势, UITapGesture 和 UISwipeGesture..点击手
我正在尝试在博客中制作一个可滑动的菜单,这是我的代码: $(window).load(function(){ $("[data-toggle]").click(fun
我想在 UIPageViewController 上从一个页面滑动到另一个页面时实现动画。我希望将此动画链接到 UISwipeGestureRecognizer。 我的问题是:我可以计算滑动手势的开始
我是一名优秀的程序员,十分优秀!