标签: android-viewpager

获取ViewPager的当前位置

在我的程序中,我显示 GridView,当用户点击任何显示 ViewPager 的网格项目时

在这里我想知道,如何显示总位置的当前位置,就像我们通常在图片库中看到的那样

例如:我想显示 ViewPager 的当前位置以及 textView 中的网格项目总数

 3 of 11
Run Code Online (Sandbox Code Playgroud)

这就是我想要得到的:

在此输入图像描述

MainActivity.java:GridView

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Set title for the GridView
        setTitle("GridView");
        // Get the view from grid_view.xml
        setContentView(R.layout.grid_view);

        // Set the images from ImageAdapter.java to GridView
        GridView gridview = (GridView) findViewById(R.id.gridview);
        gridview.setAdapter(new ImageAdapter(this));

        // Listening to GridView item click
        gridview.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

                // …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager

1
推荐指数
1
解决办法
8706
查看次数

Android viewpager 不显示?

我有这个布局

  <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <ImageView
            android:id="@+id/header_cover_image"
            android:layout_width="match_parent"
            android:layout_height="150dp"
            android:scaleType="centerCrop"
            android:background="@color/com_facebook_button_background_color_pressed" />
        <refractored.controls.CircleImageView
            android:id="@+id/imageProfile"
            android:layout_width="120dp"
            android:layout_height="120dp"
            android:layout_below="@+id/header_cover_image"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="-60dp"
            android:layout_gravity="center_horizontal"
            android:elevation="5dp"
            android:padding="20dp"
            android:scaleType="centerCrop" />
        <RelativeLayout
            android:id="@+id/profile_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/header_cover_image"
            android:background="#ebca0707"
            android:elevation="4dp"
            android:paddingBottom="24dp">
            <ImageView
                android:id="@+id/add_friend"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_marginLeft="16dp"
                android:layout_marginTop="16dp"
                android:src="@drawable/played" />
            <ImageView
                android:id="@+id/drop_down_option_menu"
                android:layout_height="30dp"
                android:layout_alignParentRight="true"
                android:src="@drawable/wins"
                android:layout_width="30dp"
                android:layout_toLeftOf="@+id/drop_down_option_menu"
                android:layout_marginRight="16dp"
                android:layout_marginTop="16dp" />
            <TextView
                android:id="@+id/user_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="76dp"
                android:textColor="#fff"
                android:textSize="24sp"
                android:textStyle="bold" />
            <TextView
                android:id="@+id/userStatus"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/user_name"
                android:text="Status"
                android:textColor="#fff"
                android:textSize="14sp"
                android:layout_marginLeft="16dp"
                android:layout_marginTop="15dp"
                android:layout_centerHorizontal="true" />
        </RelativeLayout> …
Run Code Online (Sandbox Code Playgroud)

xml android android-viewpager

1
推荐指数
1
解决办法
1878
查看次数

如何使用 ViewPager android 禁用或隐藏键盘上的左右箭头

我正在尝试keyboard使用此代码禁用左右两侧的功能,但viewPager按左右键会button更改寻呼机的状态。

edComment.setOnEditorActionListener(
    new EditText.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {

        if (actionId == EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS
                || actionId == EditorInfo.IME_FLAG_NAVIGATE_NEXT
                || actionId == EditorInfo.IME_ACTION_PREVIOUS
                || actionId == EditorInfo.IME_ACTION_NEXT
                ) {


            return false;


        }
        // Return true if you have consumed the action, else false.
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

java android android-viewpager

1
推荐指数
1
解决办法
497
查看次数

画布试图绘制太大的位图

当我尝试在 Android N 的 View Pager 中加载一组图像时遇到问题(检查 Samsung S6)。

java.lang.RuntimeException:画布:尝试绘制太大(132710400字节)位图。

图片尺寸为960*720,大小为64k,View Pager数量为4

现在我将所有图像放在普通的“drawable”文件夹中。我尝试将所有图像替换为“drawable-xxhdpi”,但问题仍然存在。

android canvas bitmap android-viewpager android-drawable

1
推荐指数
1
解决办法
1万
查看次数

无法识别 kotlin 中的 FragmentManager

我想在我的应用程序中设置一个 viewPager 和寻呼机适配器,但我无法实现它,因为我不能使用 fragmentManager。我得到以下错误:

“错误:(45, 38) 分类器‘FragmentManager’没有伴随对象,因此必须在此处初始化”

我的代码是:

import android.support.v4.app.Fragment
import android.support.v4.app.FragmentManager

private lateinit var pagerAdapter: mPagerAdapter
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main2)
    pagerAdapter = mPagerAdapter(FragmentManager) // err is here
    viewPager.adapter = pagerAdapter
  }

class mPagerAdapter(fragmentManager: FragmentManager) :
        FragmentStatePagerAdapter(fragmentManager) {


    // 2
    override fun getItem(position: Int): Fragment {
        when (position) {
            0 -> return Tab1() as Fragment
            1 -> return Tab2() as Fragment
            2 -> return Tab3() as Fragment
        }
        return Tab1() as Fragment
    }

    // 3
    override fun …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager kotlin

1
推荐指数
1
解决办法
6241
查看次数

将水平 recylerview 的滚动与 viewpager 滚动同步

我有一个带有一些值的视图寻呼机,回收器视图上方的回收器视图的计数相同(就像一个tablayout)

我已经使用 snap helper 实现了该功能,并且一切正常,唯一我想要的就是我想将 recyclerview 的滚动与 viewpager 滚动同步,这是我无法实现的。

以下是我想要达到的目标

但我得到的是如下

我覆盖了视图页面的滚动但没有用

 @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

myRecyler..scrollBy(positionOffsetPixels,0);
}
Run Code Online (Sandbox Code Playgroud)

但它的奇怪行为我也尝试过scrollToPositionWithOffset

layoutManagerStart.scrollToPositionWithOffset(position,positionOffsetPixels);
Run Code Online (Sandbox Code Playgroud)

但都失败了,我使用 snap helpers 所以所选项目将位于第一个位置。

任何人都可以帮助我达到上述效果。

android scrollview android-layout android-viewpager android-recyclerview

1
推荐指数
1
解决办法
632
查看次数

如何在MainActivity中获取ViewPager创建的fragment的元素?

我有几个用ViewPager. 我在 MainActivity 的方法中addOnPageChangeListener添加了一个,它给出了所选片段的位置。ViewPageronCreate

尽管我通过声明 a 来防止片段自行销毁setOffscreenPageLimit,但我仍然没有弄清楚如何从 MainActivity 访问片段,因为简单地使用findViewById会返回空对象异常。

我想做的事:

我想访问片段的元素,例如布局和滚动视图,OnPageListenerViewPager

mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

@Override
    public void onPageSelected(int i) {

        if(i == 0) {
            // Do something with the first fragment.
        } else if(i == 1) {
            // Do something with the second fragment.
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

使用ViewPagerFragmentPagerAdapter

public class SectionsPagerAdapter extends FragmentPagerAdapter {

    public SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public …
Run Code Online (Sandbox Code Playgroud)

java android android-fragments android-viewpager

1
推荐指数
1
解决办法
1601
查看次数

返回视图时 FragmentManager 已经在执行事务

我有一个视图,它有一个 tablayout 激活 viewpager,在查看页面时它工作正常,但是如果我单击该视图上的一个项目然后返回到过去的屏幕,我会得到:

Java.Lang.IllegalStateException:FragmentManager 已经在执行事务

public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    CurrentActivity = Activity;

    var view = inflater.Inflate(Resource.Layout.fragment_directory, null);

    _tabLayout = view.FindViewById<TabLayout>(Resource.Id.directory_tabs);
    _viewPager = view.FindViewById<ViewPager>(Resource.Id.directory_pager);

    SetTabLayout();
    SetViewPager();

    return view;
}

private void SetTabLayout()
{
    var userTab = _tabLayout.NewTab();
    userTab.SetText("Users");

    var orgUnitsTab = _tabLayout.NewTab();
    orgUnitsTab.SetText("Organizations");

    _tabLayout.AddTab(userTab);
    _tabLayout.AddTab(orgUnitsTab);
    _tabLayout.TabGravity = TabLayout.GravityFill;
}

private void SetViewPager()
{
    var pagerAdapter = new DirectoryPagerAdapter(FragmentManager, _tabLayout.TabCount);

    _viewPager.Adapter = pagerAdapter;
    _viewPager.AddOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(_tabLayout));
}
Run Code Online (Sandbox Code Playgroud)

不确定它是否有所作为,但是当我离开这个视图时,我从一个片段变成了一个活动。

xamarin.android android-viewpager android-tablayout

1
推荐指数
1
解决办法
5813
查看次数

ViewPager2 中的片段未填充高度

我已经使用 TabLayout 设置了 ViewPager2,以便通过滑动或单击选项卡来切换片段。我知道的问题是我的碎片没有占据所有空间,并且底部有一个空白空间,我无法滑动。我怎样才能让我的碎片填满这个空间?

编辑:我认为我的问题与我试图将我的viewpager加载到另一个片段中这一事实有关。我将代码复制到一个新项目中,而不是将代码加载到片段中,而是将其加载到主活动中,并且它已经起作用了。在片段中加载视图分页器是一种不好的做法吗?

我已经像这样更改了我的ProfileFragment.kt但它仍然无法正常工作:

class ProfileFragment : Fragment() {

    private lateinit var tabsText: List<String>
    private val adapter by lazy {
        ViewPagerAdapter(childFragmentManager, lifecycle)
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        tabsText = listOf<String>(getString(R.string.user_info),
            getString(R.string.saved_recipes), getString(R.string.shopping_list))
    }

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        return inflater.inflate(R.layout.fragment_profile, container, false)
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        pager.adapter = adapter

        TabLayoutMediator(tabs, pager) { tab, position ->
            tab.text = tabsText.get(position)
        }.attach()
    }
} …
Run Code Online (Sandbox Code Playgroud)

android fragment android-viewpager kotlin

1
推荐指数
1
解决办法
6013
查看次数

ViewPager 和 FlatList 有什么区别?

我认为 FlatList 的 pagingEnabled={true} 与 viewpager 的贡献相同。两者有何区别?

android-viewpager react-native react-native-ios react-native-flatlist

1
推荐指数
1
解决办法
985
查看次数