【Android开发--新手必看篇】HorizontalScrollView 横向菜单

本文详细介绍如何在Android应用中实现横向菜单功能,通过使用HorizontalScrollView和GridView控件,结合LinearLayout进行布局设计,展示了如何动态调整GridView宽度及子项数量,以适应不同数量的数据项。
摘要由CSDN通过智能技术生成

Android笔记

​ ——横向菜单
若对该知识点有更多想了解的,欢迎私信博主~~

横向菜单:HorizontalScrollView
一:使用
  1. 布局

    <HorizontalScrollView
            android:id="@+id/hsv"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">
    
                <GridView
                    android:id="@+id/gv"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center"
                    android:horizontalSpacing="-3dp"
                    android:numColumns="auto_fit"/>
    
            </LinearLayout>
    
    </HorizontalScrollView>
    
    HorizontalScrollView中必须有且仅有一个可以滚动的控件,LinearLayout作为GridView的父容器方便使用
  2. 主代码

    private GridView gv;
        private GridViewAdapter adapter;
        private List<String> list = new ArrayList<>();
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main3);
    
            gv = findViewById(R.id.gv);
    
            for (int i = 0; i < 30; i++) {
                list.add("站点" + i);
            }
    
            // GridView子项宽度
            int itemWidth = 200;
            // 子项宽度*数据总数=GridView的宽度
            int gridviewWidth = list.size() * itemWidth;
    
            // 动态控制LinearLayout
            //创建布局参数实体类
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(gridviewWidth, LinearLayout.LayoutParams.MATCH_PARENT);
            //设置GridView的布局参数
            gv.setLayoutParams(params);
            //设置子项宽度
            gv.setColumnWidth(itemWidth);
            //设置拉伸模式
            gv.setStretchMode(GridView.NO_STRETCH);
            //设置子项个数
            gv.setNumColumns(list.size());
    
    
            adapter = new GridViewAdapter(list, getApplicationContext());
            gv.setAdapter(adapter);
        }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值