- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的新项目由一个带有 6 个 fragment 的抽屉导航组成(奥迪/宝马/起亚...汽车品牌)。我希望每个 fragment 都有 2 个其他 fragment ( Models ,其中将有一个带有汽车模型的 ListView
,第二个 fragment 称为 Pictures ,很明显它包含什么)。我不喜欢选项卡,这就是为什么我选择在 fragment 之间进行滑动导航的 TitleStrip
。
宝马.java
public class BMW extends Fragment {
CollectionPagerAdapter mCollectionPagerAdapter;
ViewPager mViewPager;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(com.zenyt.R.layout.fragment_bmw, container, false);
mCollectionPagerAdapter = new CollectionPagerAdapter(
getFragmentManager());
// Set up action bar.
final ActionBar actionBar = getActivity().getActionBar();
// Specify that the Home button should show an "Up" caret, indicating
// that touching the
// button will take the user one step up in the application's hierarchy.
actionBar.setDisplayHomeAsUpEnabled(true);
// Set up the ViewPager, attaching the adapter.
mViewPager = (ViewPager) rootView.findViewById(R.id.bmw_pager);
mViewPager.setAdapter(mCollectionPagerAdapter);
return rootView;
}
public class CollectionPagerAdapter extends FragmentStatePagerAdapter {
final int NUM_ITEMS = 2; // number of tabs
public CollectionPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
Fragment fragment = new TabFragment();
Bundle args = new Bundle();
args.putInt(TabFragment.ARG_OBJECT, i);
fragment.setArguments(args);
return fragment;
}
@Override
public int getCount() {
return NUM_ITEMS;
}
@Override
public CharSequence getPageTitle(int position) {
String tabLabel = null;
switch (position) {
case 0:
tabLabel = getString(R.string.label1);
break;
case 1:
tabLabel = getString(R.string.label2);
break;
}
return tabLabel;
}
}
public static class TabFragment extends Fragment {
public static final String ARG_OBJECT = "object";
private ListView myListView;
private String[] strListView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Bundle args = getArguments();
int position = args.getInt(ARG_OBJECT);
int tabLayout = 0;
switch (position) {
case 0:
tabLayout = R.layout.models;
break;
case 1:
tabLayout = R.layout.pictures;
break;
}
View rootView = inflater.inflate(tabLayout, container, false);
return rootView;
}
}
}
在TabFragment
中,我想要 fragment 而不是布局(模型
和图片
)。我怎样才能做到这一点?
模型.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@android:color/black"
>
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listView2" />
</RelativeLayout>
模型.java
public class Models extends Fragment {
private ListView myListView;
private String[] strListView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(com.zenyt.R.layout.models, container, false);
myListView = (ListView) rootView.findViewById(com.zenyt.R.id.listView2);
strListView = getResources().getStringArray(com.zenyt.R.array.bmw_list_data);
ArrayAdapter<String> objAdapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, strListView);
myListView.setAdapter(objAdapter);
myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
});
return rootView;
}
}
最佳答案
看来是我自己解决了。我所要做的就是稍微更改一下 PagerAdapter,如下所示:
public class CollectionPagerAdapter extends FragmentStatePagerAdapter {
public CollectionPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
switch (arg0) {
case 0:
return new Bmw1();
case 1:
return new Bmw2();
default:
break;
}
return null;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
String tabLabel = null;
switch (position) {
case 0:
tabLabel = getString(R.string.label1);
break;
case 1:
tabLabel = getString(R.string.label2);
break;
}
return tabLabel;
}
}
关于java - Android SwipeViews + TitleStrip + ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27766345/
我正在使用这个:https://github.com/nicklockwood/SwipeView 我在我的应用程序的 2 个不同位置使用它。 屏幕上的 30x30 图片大约 100kb 文件大小,这
如果我使用滑动 View ,我会遇到一些问题,并且我编写了以下代码: import QtQuick 2.6 import QtQuick.Window 2.2 import QtQuick.Contr
我正在尝试创建基于 SwipeView 元素的视差 View 。 QML 文档中的示例说明了如何使用 ListView 实现它: Image { id: background sour
我通过 viewpager 有一个带有两个不同 View ( fragment )的 swipeview。我现在想要这两个页面显示来自 sqllite 数据库的不同数据。问题是我无法弄清楚如何做到这一
我将尝试以非常清晰易懂的方式解释我的问题。 我目前在这里使用 SwipeView:http://jasonfry.co.uk/?id=23
我正在使用 jason fry 的 SwipeView,虽然他将它用于 ImageView ,但我正在努力用布局替换它。 目前,如果我用 TextView 替换 ImageView 就可以了,但是我如
我正在使用 Swipeview ( http://cubiq.org/swipeview ) 创建可在 iPhone 和 Android 上运行的触控式 carousel。基础知识非常有用。 当我尝试
我必须在 SwipeView 中使用 QML 组件(例如项目 1、项目 2、项目 3)而不使用 Repeater 来实现页面,并且还需要实现翻页器,如下所示。 getPreviousPage Rect
我正在尝试制作一个带有按钮的滑动 View ,只要单击该按钮,它就会打开第二个 Activity ,但我无法在点击监听器中设置 setActivity 这是我的代码。将进行哪些更改我在我的寻呼机适配器
我的新项目由一个带有 6 个 fragment 的抽屉导航组成(奥迪/宝马/起亚...汽车品牌)。我希望每个 fragment 都有 2 个其他 fragment ( Models ,其中将有一个带有
我是 android 的新手。我正在做简单的 aphabate 应用程序。在那个应用程序中我正在使用字母表字母。当在字母上滑动时它将如何移动到下一个字母。请给我建议 提前致谢 最佳答案 我想建议您查看
我正在使用 iScroll4 在移动网站中的图像上创建水平滚动效果。 iScroll 工作得很好,但问题是 iScroll 包装器中包含的图像禁用了 native 垂直滚动。换句话说,在 iScrol
可能这是一个骗局,但我一直在寻找解决方案,它们总是与我的问题略有不同。 所以:我目前正在创建一个应用程序,其中包含 2 个可滑动的 fragment 。 TaskGroupFragment 显示一个列
我正在努力避免 SideView 和 ListView 似乎都喜欢的这种烦人的重叠。这是一个演示问题的示例: 注意:当您滑动 SwipeView 时请查看左侧的绿色矩形,当您向下滚动 ListView
我使用 swipeview 在两个页面之间滑动,每个页面本身就是一个 Activity (一个 xml 和一个 java 文件)。如果没有 swipeview,我的应用程序可以正常工作,并且我的数据库
我是一名优秀的程序员,十分优秀!