Android 双向滚动

2023-11-29

这更多的是一个大众答案而不是一个问题,我只是不知道如何发布它,版主如果你能告诉我是否有这样的事情。

这个问题被问死了,然后我需要做类似的事情,所以我解决了这个问题。这篇文章的答案是如何在android中创建3x3双向滚动视图


下面是如何创建双向滚动视图

将图库放入 GridView 中,其中一列和列大小设置为填充父视图(或达到此效果的其他内容)。将画廊放入 GridView 中,并在 LayoutParams 中将其高度设置为您想要占用的可绘制对象/视图的高度。您需要做的就是当移动一个画廊时,即可移动网格视图中的所有其他画廊。我将在下面发布代码。注意:我所做的代码是对有效概念的测试,我只是在手机上尝试过。然而,它并不浮华。当我继续研究它时,我可能会更新代码以使其看起来更好。

〜伊顿:)

这是对以下问题的一般回答:如何制作一个水平和垂直滚动的二维图库?

具有水平滚动的 GridView

public class Test extends Activity {
/** Called when the activity is first created. */
GridView gv;
Gallery g[] = new Gallery[3];
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    gv = (GridView)findViewById(R.id.gridview);
    gv.setAdapter(new GAdapter());
    for (int i = 0; i < g.length; i++) {
        g[i] = new Gallery(this);
        g[i].setAdapter(new GGAdapter());
        g[i].setOnTouchListener(new OnTouchListener() {
            @Override public boolean onTouch(View arg0, MotionEvent ev) {
                if (ev.getAction() == MotionEvent.ACTION_UP) {
                    for (int j = 0; j < g.length; j++) {
                        g[j].setSelection(((AdapterView)arg0).getSelectedItemPosition());
                    }
                }
                return false;
            }
        });
    } 
}

private class GAdapter extends BaseAdapter {    
    public GAdapter() {}
    @Override public int getCount() {return g.length;}
    @Override public Object getItem(int pos) {return pos;}
    @Override public long getItemId(int pos) {return pos;}
    @Override public View getView(final int pos, View convertView, ViewGroup parent) {

        g[pos].setLayoutParams(new GridView.LayoutParams(gv.getWidth(), gv.getHeight()));           
        return g[pos];
    }
}

private class GGAdapter extends BaseAdapter {       
    int[] images = new int[] {R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon};
    public GGAdapter() {}
    @Override public int getCount() {return images.length;}
    @Override public Object getItem(int pos) {return pos;}
    @Override public long getItemId(int pos) {return pos;}
    @Override public View getView(final int pos, View convertView, ViewGroup parent) {
        ImageView mIV = new ImageView(Test.this);
        mIV.setBackgroundResource(images[pos]);
        mIV.setLayoutParams(new Gallery.LayoutParams(gv.getWidth(), gv.getHeight()/3));         
        return mIV;
    }
}

}

和我的 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:numColumns="1"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:gravity="center"/>
 </LinearLayout>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 双向滚动 的相关文章

随机推荐

  • 数组在什么情况下会退化为指针?

    我只知道一个案例 当数组传递给函数时 它们会衰减为指针 任何人都可以详细说明数组衰减为指针的所有情况吗 C 2011 6 3 2 1 3 除非它是操作数sizeof运算符 或一元 运算符 or 是用于初始化数组的字符串文字 具有类型的表达式
  • Android Studio - 应用程序不是从最新保存的项目运行的

    几天以来我一直遇到这个问题 我启动 Android Studio 和 Genymotion 打开一个项目 运行应用程序 一切正常 接下来 我通过进行一些更改来编辑我的项目 保存文件 然后再次运行它 但它不会使用我的最新更改运行 而是运行之前
  • 我应该在 debian 上的 openoffice 中使用什么虚拟 X 服务器?

    我需要以批处理模式运行 openoffice 将 doc 文件转换为 pdf 但 openoffice 无法启动 因为它需要 X 服务器 我的linux盒子没有 我周围有一些虚拟的黑洞 X 服务器可以使用吗 我正在使用 Debian 蚀刻
  • 如何在jquery中使用多个“属性等于”选择器?

    如果您想选择一个具有 1 个等于某个值的属性的 jquery 元素 很简单 element attribute1 true hide 但是如果你想选择一个具有 2 个相同属性的元素怎么办 element attribute1 true at
  • 如何以编程方式计算上下文切换?

    在Windows下 有没有办法以编程方式计算同一进程的上下文切换 最好的事情是每当线程切换时都会调用回调 有一个性能计数器这对你有用 您所要做的就是读取它的值 您可以找到有关如何交互式执行此操作的说明here 但也可以使用其 API 来使用
  • Woocommerce 自定义产品类别下拉问题

    我正在为店面主题开发一个儿童主题 我使用产品类别小部件作为标题下的下拉菜单 这完全符合我的需求 尽管我需要相同的 如果可能 下拉菜单显示在每个类别页面上 而不仅仅是主页上 我正在定制这段代码这几乎做到了 WooCommerce Extra
  • 年和年代有什么区别?

    The DateTimeFormatter类文档定义单独的符号u年度和y时代年份 https docs oracle com javase 8 docs api java time format DateTimeFormatter html
  • 拖动手势时将矩形限制为屏幕边缘

    我刚刚开始使用 SwiftUI 我希望找到最好的方法来解决在拖动手势期间将该矩形保持在屏幕边界内的问题 现在它会离开边缘 直到到达正方形的中间 我想是因为我正在使用 CGPoint 我尝试做一些数学来限制矩形 它只在左侧成功 但这似乎是一种
  • Gremlin 日期过滤方法

    有没有办法查询 titan gremlin 的日期 例如查找过去 X 天内的所有结果 任何帮助将非常感激 最好的方法是简单地将日期存储为 Long 值 并可能在边缘中的此类字段上建立索引 以便您可以利用limit interval等 请参阅
  • 将范围导出为图像

    一段时间以来 我和我的同事一直在使用各种方法来创建模板来轻松制作志愿者职位空缺表格 理想情况下 该项目的负责人只需输入详细信息 职位空缺表格就会自动生成 此时 我已经自动完成了表单 但我们仍然需要复制范围并将其手动粘贴到绘图中以将其另存为图
  • 我可以向 JSON-LD 中的给定 @type 添加自定义属性吗?

    我正在开发一个网站 允许用户探索大量唱片 所有数据当前都存储在一个 JSON 文件中 我将其转换为 JSON LD 以便使其具有语义并可供搜索引擎抓取 Schema org 有一个标准类型音乐专辑 它没有我为每个专辑存储 并呈现给用户 的某
  • C# - 国际设置的 Excel 数字格式问题

    我正在尝试使用 c 3 5 写入 Excel 2003 电子表格 但是我无法让它在不同的国家 地区设置中正常运行 国家 地区设置为英语或德语 这两个设置有不同的小数和千位设置 除非用户更改了 选项 屏幕的 国际 设置中的小数点和千位分隔符
  • 下拉列表项的工具提示

    我有一个下拉列表 我想为下拉列表项添加工具提示 我尝试使用以下代码 但它不起作用 for int d 0 d
  • JQUERY 通过参数 ID 获取元素

    只是想知道 jquery 的等效语法是什么 var elm id my id var elm document getElementById elm id thanks 我想你正在寻找的是 var elm id my id var elm
  • Eclipse CDT clean 在 Windows 上失败:尝试运行 rm -rf

    我在 Windows 7 上使用带有 CDT 的 Juno 当我尝试使用 MinGW 提供的内部构建器或 make 清理项目时 Eclipse 运行 X 命令 射频 并且清理操作失败 从控制台使用外部构建器 mingw32 make 进行日
  • Hive/Hadoop 中的唯一密钥生成

    从大数据 Hive 表中选择一组记录时 需要为每条记录创建唯一的键 在顺序操作模式下 通过调用像 max id 这样的东西很容易生成唯一的 id 由于 hive 并行运行任务 我们如何在不影响 hadoop 性能的情况下生成唯一键作为选择查
  • 需要处理来自非活动(.java)类的点击

    我有一个主要的 Activity 类 其中包含大量代码 数据 所以我想让它简短易读 所以我想创建一个 java 文件来根据要求处理一些功能 喜欢 Button b Button findviewById R id b1 b setOnCli
  • Android 应用程序 CPU 使用率高

    我正在编写一个应用程序 该应用程序必须在较长时间内执行高 CPU 使用率的操作 该操作像服务一样启动 但是android系统因为CPU使用率高而杀死了该应用程序 那么我该怎么做才能减少CPU使用率呢 并使系统不停止我的服务 服务 impor
  • 登录不应该是 GraphQL 中的查询吗?

    In the tutorial在 GraphQL 身份验证上 login is a Mutation type Mutation post url String description String Link signup email St
  • Android 双向滚动

    这更多的是一个大众答案而不是一个问题 我只是不知道如何发布它 版主如果你能告诉我是否有这样的事情 这个问题被问死了 然后我需要做类似的事情 所以我解决了这个问题 这篇文章的答案是如何在android中创建3x3双向滚动视图 下面是如何创建双