- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 ActionBarActivity 和 ViewPager 有疑问。
在我的“主 Activity ”上,这是一个 ActionBarActivity,我有一些选项卡,它们是 fragment 。
我想在这些选项卡之间实现“滑动功能”。
我已经阅读了以下教程: http://developer.android.com/training/implementing-navigation/lateral.html
实际上我已经实现了整个代码,但我的应用程序无法运行。 :(
选项卡之间没有“滑动功能”。
这是我的主要 Activity 代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hauptmenue_extended);
try {
actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// ViewPager ...
pagerAdapter = new CollectionPagerAdapter(
getSupportFragmentManager());
viewPager = (ViewPager) findViewById(R.id.viewpager);
viewPager.setAdapter(pagerAdapter);
viewPager.setCurrentItem(1);
viewPager
.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
}
});
// Add all tabs to the actionbar...
Tab tabB = actionBar.newTab();
tabB.setText("Home");
tabB.setIcon(R.drawable.icon_home);
tabB.setTabListener(new TabListener<Startmenue_activity>(this,
"Start", Startmenue_activity.class, viewPager));
actionBar.addTab(tabB);
Tab tabA = actionBar.newTab();
tabA.setText("");
tabA.setIcon(R.drawable.icon_nachrichten_sel);
tabA.setTabListener(new TabListener<Nachrichten_activity>(this,
"News", Nachrichten_activity.class, viewPager));
actionBar.addTab(tabA);
Tab tabC = actionBar.newTab();
tabC.setText("");
tabC.setIcon(R.drawable.icon_favoriten);
tabC.setTabListener(new TabListener<Favoriten_activity>(this,
"Favs", Favoriten_activity.class, viewPager));
actionBar.addTab(tabC);
我的适配器看起来像这样:
public class CollectionPagerAdapter extends FragmentPagerAdapter {
final int NUM_ITEMS = 3; // number of tabs
List<Fragment> fragments = new ArrayList<Fragment>();
public Fragment getItem(int pos) {
return fragments.get(pos);
}
public void addFragment(Fragment f) {
fragments.add(f);
}
public CollectionPagerAdapter(FragmentManager fm) {
super(fm);
Fragment home_Fragment = new Startmenue_activity();
addFragment(home_Fragment);
Fragment news_Fragment = new Nachrichten_activity();
addFragment(news_Fragment);
Fragment favoriten_Fragment = new Favoriten_activity();
addFragment(favoriten_Fragment);
}
@Override
public int getCount() {
return NUM_ITEMS;
}
}
哦,我的主要 Activity 的 XML 看起来像这样:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/fragView"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Hauptmenue_extended" >
<!-- The ViewPager -->
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<!-- The main content view -->
<FrameLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
<!-- The navigation drawer -->
<ListView
android:id="@+id/left_drawer"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#fff"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp" />
</android.support.v4.view.ViewPager>
</android.support.v4.widget.DrawerLayout>
最佳答案
关于您的代码,有很多我不完全理解的地方,例如,您为什么要在 ViewPager
中放置一个 ListView
?。不管怎样,如果你想用滑动功能实现一些标签。方法如下:
首先是 xml:
<?xml version="1.0" encoding="utf-8"?>
<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.PagerTabStrip
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top" />
</android.support.v4.view.ViewPager>
现在的 Activity :
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
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);
pager.setAdapter(new SampleAdapter(this, getSupportFragmentManager()));
}
}
适配器:
import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
public class SampleAdapter extends FragmentStatePagerAdapter {
Context ctxt = null;
public SampleAdapter(Context ctxt, FragmentManager mgr) {
super(mgr);
this.ctxt = ctxt;
}
@Override
public int getCount() {
return 3;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new SimpleFragment("Hi");
case 1:
return new SimpleFragment("There");
case 2:
return new SimpleFragment("Fella");
}
return null;
}
@Override
public String getPageTitle(int position) {
switch (position) {
case 0:
return "First Tab";
case 1:
return "Second Tab";
case 2:
return "Third Tab";
}
return null;
}
}
和 SimpleFragment
:
import android.annotation.SuppressLint;
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;
@SuppressLint("ValidFragment")
public class SimpleFragment extends Fragment {
String text;
public SimpleFragment(String string) {
text = string;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment, container, false);
TextView textview = (TextView) root.findViewById(R.id.textView1);
textview.setText(text);
return root;
}
}
还有 fragment.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
希望这有帮助:)
关于Android - ActionBarActivity 与 ViewPager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19348415/
这个问题已经有答案了: ActionBarActivity is deprecated [duplicate] (3 个回答) 已关闭 8 年前。 如何解决 Eclipse 中导入 android.s
我正在学习如何在 Android Studio 中使用 NDK 的教程:http://www.ph0b.com/android-studio-gradle-and-ndk-integration/ 我
当我尝试导入它时,收到错误“无法解析符号 ActionBarActivity”。 我阅读了有关同一问题的问题并阅读了答案并尝试解决该问题,但无济于事。 我使用的是 android studio 版本
我正在使用这个模板 https://github.com/kanytu/android-material-drawer-template只是为了尝试 material design,所以我实现了一些
在我的 android Studio 中,编译器无法找到 ActionBarActivity。因此,我遇到了很多错误。编译器无法导入 ActionBarActivity 和 ActionBar 类。这
这个问题在这里已经有了答案: Why was ActionBarActivity deprecated (3 个回答) 关闭6年前。 其实没有问题。项目编译并运行。但我不明白什么是删除类名的意思(An
几天前,我将 android studio 和 gradle 更新到了 4.4.1。当我尝试创建一个类主 Activity 来扩展 actionbaractivity 时,如下所示 publi
我正在尝试使用 GitHub 存储库中的侧菜单。菜单的动画需要一个类 ViewAnimator 来获取参数 ActionBarActivity,在示例中给出为 this(即 MainActivity,
我有一个使用搜索小部件的有效搜索实现,就像在从 Activity 扩展的 Activity 内部一样: @Override public boolean onCreateOptionsMenu(Men
我一直在尝试遵循 Android 聊天应用程序的教程。 我已经完成了使用 AppCompatActivity 和 ActionBarActivity 所需的所有配置,但是当我尝试运行我的应用程序时,它
我对 ActionBarActivity 和 ViewPager 有疑问。 在我的“主 Activity ”上,这是一个 ActionBarActivity,我有一些选项卡,它们是 fragment
是否可以将操作栏添加到 android 应用程序:1) 没有子类化 ActionBarActivity2) 支持 Gingerbread 和更新 我搜索了 google 和 SO,没有结果。 我问这个
我在 ActionBarActivity 中搜索了多个 Intent 和 fragment 的示例。我正在从 Deitel 系列和其他信息丰富的资源中学习 android 编程。我面临的障碍是从使用
我正在使用 Toolbar在 fragment (覆盖整个屏幕)内,我想显示后退按钮,但我不能使用 getSupportActionBar().setDisplayHomeAsUpEnabled(tr
我正在尝试从 ActionBarActivity 扩展我的类,但不能,我已经尝试了所有可能的方法。我正在导入 android.support.v7.app.ActionBarActivity;我想按照
我有一个扩展 FragmentActivity 和导入 android 库 v4 的类。现在我想在我的 Activity 中实现 Navigation Drawer,我想扩展 ActionBarAct
我在我的应用程序中使用 android.support.v7.widget.Toolbar。 我可以通过 getSupportActionBar().setIcon() 设置图标。并通过 toolba
我已经尝试使缓存无效并重新启动,但它仍然显示并且不会像以前那样编译和运行。如果我没记错的话,我尝试重命名类文件,并且一定是更改了造成这种情况的名称。它还在 findViewById、.oncreate
我有一个非常奇怪的问题。当我在单击硬件菜单按钮(Android 2.3 设备)后使用 ActionBarActivity 时,应用程序意外关闭,没有任何特定错误。 Logcat 只给出: W/KeyC
我在扩展 ActionBarActivity 时遇到错误捕获。如果我扩展 Activity 则没有错误。 事情是在我的其他 Activity 中它完美地工作。起初,我认为这是因为我之前的 Activi
我是一名优秀的程序员,十分优秀!