如何解决Xamarin.Android ViewPager滑动不起作用
我的viewpager无法使用滑动功能,通过按“布局”选项卡中的按钮来更改视图效果很好,但不能在viewpager中滑动。我最初的猜测是,因为我使用了抽屉布局和抽屉导航,所以在我尝试不使用它们之后,仍然无法刷我的视图寻呼机
这是我的代码
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minWidth="25px"
android:minHeight="25px">
<com.google.android.material.tabs.TabLayout
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tabLayout" />
<androidx.viewpager.widget.ViewPager
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/viewPager"
android:fitsSystemWindows="true" />
</LinearLayout>
fragment_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="Hello !!"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minWidth="25px"
android:minHeight="25px"
android:id="@+id/textView1" />
</LinearLayout>
ViewPagerAdapter.cs
using System;
using System.Collections.Generic;
using AndroidX.Fragment.App;
using java.lang;
namespace Project
{
public class PagerFragmentAdapter : FragmentStatePagerAdapter
{
List<Fragment> fragments;
List<java.lang.String> fragmentNames;
public PagerFragmentAdapter(FragmentManager fm) : base(fm)
{
fragments = new List<Fragment>();
fragmentNames = new List<java.lang.String>();
}
public void AddFragment(Fragment fragment,java.lang.String title)
{
fragments.Add(fragment);
fragmentNames.Add(title);
}
public override int Count
{
get
{
return fragments.Count;
}
}
public override Fragment GetItem(int position)
{
return fragments[position];
}
public override ICharSequence GetPageTitleFormatted(int position)
{
return fragmentNames[position];
}
}
}
MainActivity.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.OS;
using Project.Adapters;
using Google.Android.Material.Tabs;
using AndroidX.ViewPager.Widget;
using Project.Fragments;
using Android.App;
using AndroidX.AppCompat.App;
namespace Project
{
[Activity(Label = "MainActivity")]
public class MainActivity : AppCompatActivity
{
ViewPager viewPager;
TabLayout tabLayout;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_layanan);
ConnectView();
}
void ConnectView()
{
viewPager = FindViewById<ViewPager>(Resource.Id.viewPager);
tabLayout = FindViewById<TabLayout>(Resource.Id.tabLayout);
viewPager.OffscreenPageLimit = 3;
viewPager.BeginFakeDrag();
SetUpViewPager();
}
void SetUpViewPager()
{
PagerFragmentAdapter adapter = new PagerFragmentAdapter(SupportFragmentManager);
adapter.AddFragment(new ViewFragment(),new java.lang.String("View 1"));
adapter.AddFragment(new ViewFragment(),new java.lang.String("View 2"));
viewPager.Adapter = adapter;
tabLayout.SetupWithViewPager(viewPager);
}
}
}
我想念什么吗?
解决方法
您只需要删除viewPager.BeginFakeDrag();
void ConnectView()
{
viewPager = FindViewById<ViewPager>(Resource.Id.viewPager);
tabLayout = FindViewById<TabLayout>(Resource.Id.tabLayout);
viewPager.OffscreenPageLimit = 3;
//viewPager.BeginFakeDrag(); //remove this line
SetUpViewPager();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。