如何在 Xamarin.Android 中制作轮播视图

2023-12-13

enter image description here

如何在Xamarin android中制作这个CarouselView任何示例参考?


Android 提供了浏览器控件是一个布局管理器,可让您实现手势导航。你可以使用ViewPager实现轮播功能并通过以下方式显示视图Fragment.

对于指示器,尝试使用textView来实现功能。检测到已选页面事件的ViewPager更改滚动页面时的指示器。

检查代码:

活动课

public class Activity1 : AppCompatActivity
{
    private TextView[] _dots { get; set; }
    private LinearLayout _dotsLayout { get; set; }
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        SetContentView(Resource.Layout.layout2);


        List<Android.Support.V4.App.Fragment> fragments = new List<Android.Support.V4.App.Fragment>();
        fragments.Add(new MyFragment_1());
        fragments.Add(new MyFragment_2());
        fragments.Add(new MyFragment_3());


        var adapter = new MyPagerAdapter(SupportFragmentManager, fragments);
        ViewPager pager = (ViewPager)FindViewById(Resource.Id.pager);
        pager.Adapter = adapter;
        pager.PageSelected += Pager_PageSelected;


        _dotsLayout = FindViewById<LinearLayout>(Resource.Id.indicator);
        AddDotsIndicator(0);
    }


    private void Pager_PageSelected(object sender, ViewPager.PageSelectedEventArgs e)
    {
        AddDotsIndicator(e.Position);
    }
    private void AddDotsIndicator(int pos)
    {
        _dots = new TextView[3];
        _dotsLayout.RemoveAllViews();
        for (int i = 0; i < _dots.Length; i++)
        {
            _dots[i] = new TextView(this);
            _dots[i].Text = ".";
            _dots[i].TextSize = 35;
            _dotsLayout.AddView(_dots[i]);
        }
        if (_dots.Length > 0)
            _dots[pos].SetTextColor(Android.Graphics.Color.Red); //change indicator color on selected page
    }
}

布局.xml

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:id="@+id/indicator"
    android:layout_alignParentBottom="true"
    android:gravity="center_horizontal"/>
<android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentTop="true"
    android:layout_gravity="top"
    android:textColor="#000"/>

Fragment类和FragmentPagerAdapter类:

public class MyPagerAdapter : FragmentPagerAdapter
{
    List<Android.Support.V4.App.Fragment> fragments;
    public MyPagerAdapter(Android.Support.V4.App.FragmentManager fm, List<Android.Support.V4.App.Fragment> fragments) : base(fm)
    {
        this.fragments = fragments;
    }
    public override int Count { get { return fragments.Count; } }
    public override Android.Support.V4.App.Fragment GetItem(int position)
    {
        return fragments[position];
    }
}


public class MyFragment_1 : Android.Support.V4.App.Fragment
{
    public MyFragment_1()
    {
    }


    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        View view = inflater.Inflate(Resource.Layout.layout1, container, false);
        TextView text = (TextView)view.FindViewById(Resource.Id.text);
        text.Text = "view_1";
        return view;
    }
}

教程:如何使用 viewpager 添加点指示器

Here是示例项目的链接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Xamarin.Android 中制作轮播视图 的相关文章

  • 将 PDF 文档打印到 esc/pos 热敏打印机

    我们正在使用 xamarin forms 开发 POS APP 因为我们需要将收据打印到通过 LAN 连接的 esc pos 热敏打印机 我们的应用程序支持多语言 通过更改代码页使用 esc pos 命令打印多种语言效果非常好 但它仅适用于
  • Android 软键盘遮挡 ScrollView 中的 EditText

    我有一个 TableLayout 它在 ScrollView 内填充 parent 一切都很完美 除了当显示软键盘时它遮盖了最后几个 EditText 从技术上讲 屏幕无法再向下滚动 因为如果不显示键盘 屏幕就会容纳所有内容 只是当键盘显示
  • appcompat-v7:21.0.0': 找不到与给定名称匹配的资源:attr 'android:actionModeShareDrawable'

    当尝试在我的项目中使用最新的 appcompat v7 支持库时 出现以下错误 Users greg dev mobile android project app build intermediates exploded aar com a
  • 如何设置 Xamarin Picker 中项目列表的样式(在 Android 中)

    我有一个 Xamarin Android 应用程序 它使用选取器从值列表中进行选择 我一直在改变应用程序的风格 但遇到了选择器的问题 虽然我可以设置 TextColor 但无法设置占位符文本的颜色 在搜索帮助后 我实现了一个自定义渲染器 现
  • Xamarin Android - 如何重建 Resource.designer.cs

    在 Xamarin Android 中 如何重新生成 Resource designer cs 我尝试将所有 XML 文件的构建操作标记为 AndroidResource 但 Resource designer cs 仍然不会使用新值进行更
  • 安卓版本设置

    我希望我的 Xamarin Android 应用程序支持 API 级别 16 及更高级别 但我对 Visual Studio 的属性窗格中存在三种不同的版本设置感到困惑 属性的名称是 Compile using Android versio
  • 减少 Xamarin.Forms 中的 APK 大小,APK 大小 80MB

    无法将 xamarin apk 大小减少到 80 MB 以下 执行以下操作 启用混淆器 配置 发布 平台 活动 任何 CPU 启用 Multi Dex true 启用开发人员检测 调试和分析 false 链接 SDK 和用户程序集 也仅尝试
  • Xamarin 无法从异步获取实例

    我编写了一个通过蓝牙连接到 ESP32 的 Xamarin Forms 应用程序 现在我想从 MainPage xaml 页面的 CustomControl JoystickControl 获取值 我已经这样尝试过了 MainPage xa
  • Xamarin Forms WebView 打开外部链接

    我的应用程序中有一个网络视图 当单击外部链接 在普通浏览器中在新选项卡中打开 时 我无法返回我的网站 当打开一个新标签时 有可能像 Gmail 一样关闭该标签的菜单吗 目的是 每当单击链接时 用户都可以选择使用哪个选项来查看内容 例如单击链
  • 在 Xamarin 中获取 OutOfMemoryException

    java lang OutOfMemoryError 考虑增加 JavaMaximumHeapSize Java 执行时内存不足 java exe 我的 Visualstudio Xamarin 项目出现内存不足异常 请帮助我如何解决此问题
  • .Net Maui Android 应用程序如何从 Google 登录获取电子邮件和个人资料

    我尝试了 WebAuthenticator 但它不起作用 我还尝试将已弃用的 GoogleApiClient 与此方法一起使用 并且该值始终为 null var person PlusClass PeopleApi GetCurrentPe
  • Xamarin Android:获取内存中的所有进程

    有没有办法读取所有进程 而不仅仅是正在运行的进程 如果我对 Android 的理解正确的话 一次只有一个进程在运行 其他所有进程都被冻结 后台进程被忽略 您可以使用以下代码片段获取当前正在运行的所有 Android 应用程序进程 Activ
  • 导入已经创建的sqlite数据库(xamarin)

    我正在使用 Xamarin 想知道如何导入我已经创建的 sqlite 数据库 到目前为止 我已将其添加到资产文件夹中 但不知道下一步从哪里开始 string localPath Path Combine System Environment
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • MonoDroid 和 MonoTouch 中的可移植类库程序集引用问题

    当我尝试构建引用 PCL 的 MonoDroid 或 MonoTouch 项目时 我的项目遇到问题 其中有适用于 Net 4 5 Windows Phone 8 WinRT MonoTouch 和 MonoDroid 的 PCL 如下所示
  • Mono for Android是一个需要安装在android设备上的框架还是一个编译为java字节码的编译器?

    我试图了解 android 的 mono 是如何工作的 但我在官方网站上没有找到这个解释 考虑到android读取java字节码 Mono for Android是一个需要安装在android设备上的框架还是一个编译为java字节码的编译器
  • 如何在 Visual Studio 2019 中定位 Android 4.1?

    我在 Windows 10 计算机上并排安装了 VS2017 和 VS2019 我无法编译 Xamarin Android 4 1 项目 在 VS2019 中 除非我将它们升级到 4 4 这似乎是我可以在 VS2019 中定位的最低 And
  • 如何将屏幕截图转换为二进制?

    我正在开发一个 Xamarin Forms 项目 在该项目中我想将我的屏幕截图 PNG 转换为二进制并将其上传到服务器 现在服务器部分需要一个API 我将由已经完成它的人交给我 我只需要实现它 在我完成这个任务之后 到目前为止 我已经成功地
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • 在 Xamarin 中动态创建 Android Spinner

    我正在创建一个简单的应用程序来熟悉 Xamarin 我想创建并填充一个微调器并动态显示其选项 我看过文档here http docs xamarin com guides android user interface spinner但它不是

随机推荐

  • 发送内容类型 application/x-www-form-urlencoded WSO2 ESB

    我一直在一个服务链中工作 该服务链通过 WSO2 EMM 中使用的不记名令牌来回答我 我在 ESB 中创建了一个代理 然后传递给一个新的序列来进行下一次调用 但是这个序列接收到一个 Content Type application x ww
  • 当系统时间错误时,如何在javascript中获得正确的时间?

    let currentDate new Date CurrentDate与系统时间有关 所以如果系统时间错误 currentDate也会错误 您可以使用原子钟 API 例如世界时钟 http worldclockapi com api js
  • 有哪些学习泛型的好资源? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 谁能帮助我从哪里开始以及了
  • 从 mongo 结果中删除 _id

    我对 mongo 和 nodejs 还很陌生 我的查询结果是 json 我只想将结果作为 http 请求返回 如下所示 app get itesms function req res items find toArray function
  • 在Scala中动态生成案例类

    我想读取一个相当大的 csv 文件并对其进行处理 切片 切块 总结等 interactively 数据探索 我的想法是将文件读入数据库 H2 并使用SQL来处理它 阅读文件 我使用Ostermiller csv 解析器 确定每列的类型 我随
  • RabbitMQ 接受连接但在接受任何输入之前关闭它们

    所以我刚刚安装了最新版本的rabbitmq并且我一直在努力让它工作 服务器正在运行 我重新启动了一次 以确保这是一个一致的问题 If I telnet localhost 5672 I get Trying 127 0 0 1 Connec
  • 使用 PHP 按姓氏对 CSV 文件进行排序

    如何使用 PHP 对以下 CSV 文件进行排序 我想按姓氏排序 我是否使用正则表达式以某种方式获取姓氏中的第一个字母 任何帮助表示赞赏 这是我的 CSV 文件的摘录 带有 名称和地址之间的分隔符 John C Buckley M D 123
  • 将 ISO-8859-2 转换为 UTF-8(波兰语字符)

    我正在尝试解析 XML 文件 http jstryczek blox pl rss2 表示其字符集是 ISO 8859 2 我的数据库是UTF 8的 所以我想将其转换为UTF 8 为此 我在字符串上运行以下命令 content iconv
  • Bootstrap 4 响应式实用程序可见/隐藏 xs sm lg 不工作

    使用新的响应式实用程序时遇到问题隐藏 可见类 当迁移到引导程序4 我知道 hidden 类已经从 v3 中删除并替换 with hidden up hidden down 使用新的 hidden up hidden down类 但元素没有更
  • 多个 Jackson XML 自定义 (XMLStreamWriter) 序列化程序抛出异常

    如果有多个自定义 XML 序列化程序 XMLStreamWriter 在类中 序列化失败 我有两节课 CustomClass1 CustomClass2 有一个包装类TestJacksonXml1 当我尝试序列化时TestJacksonXm
  • 使用向量的 C++ 3D 数组声明

    我有一些 C 代码 其中使用 向量 通过以下方法声明 2D 数组 std vector
  • 如何在 WiX 3 中注册 Win32 COM DLL 文件?

    我找到了一个关于注册DLL的例子 使用 Windows Installer XML 工具集在 MSI 文件中注册 COM Interop 程序集 并且 WiX 抱怨 AssemblyRegisterComInterop 属性 我删除了它 并
  • gluonmobile 在 Android 操作系统上存在字体错误

    我在 github com 上创建了一个演示项目来展示这个错误 https github com ismlsmile TestGluonMobile 该项目是由模板 Gluon Mobile Single View Project 创建的
  • 在Android应用程序之间传递字符串数据

    在应用程序之间传递简单数据 例如字符串 的最佳方法是什么 字符串是发送者应用程序中已知的一些字段 并且接收者应用程序需要该字段 我考虑将其存储在 MODE WORLD READABLE SharedPreferences 中 但我不一定知道
  • 向后兼容 android 的导航抽屉

    我有一个应用程序有四种不同的活动 现在我想在应用程序中添加一个导航抽屉来导航这些活动 任何人都可以提供一个用于具有背词兼容性的不同活动的导航抽屉的示例或教程 我已经看到了片段的示例 但我需要活动的示例 您需要使用支持库中的 appcompa
  • WPF 将 2d 鼠标点击转换为 3d 空间

    我的 Viewport3D 中有几个几何网格 它们的边界为 w 1800 h 500 d 25 当用户单击网格中间时 我想要 900 500 25 的 Point3D 我怎样才能实现这个目标 谢谢 标记 只需使用VisualTreeHelp
  • 如何将数据从片段发送到另一个活动?

    我需要将数据从 Fragment 发送到另一个活动 我在 HomeActivity 下的 LoadsFragment 中使用此代码 Intent intent new Intent activity LoadActivity class i
  • 访问 javascript 数组中的不同元素

    我在名为 Ignore json 的忽略列表文件中有名称 George Carl 该文件名为ignore json 在我的程序中 我将文件读入忽略变量 var ignore ignore require Ignore json 现在我想看看
  • 如何为 Django/Python 视图编写装饰器?

    这是我的观点 基本上 它根据是否登录返回不同的响应 check login def home request if is logged in request return x else return y 这是我的装饰器代码 我只是想检查请求
  • 如何在 Xamarin.Android 中制作轮播视图

    如何在Xamarin android中制作这个CarouselView任何示例参考 Android 提供了浏览器控件是一个布局管理器 可让您实现手势导航 你可以使用ViewPager实现轮播功能并通过以下方式显示视图Fragment 对于指