SaluteWarmTinct 2015-05-23 08:42 采纳率: 100%
浏览 3627
已采纳

Android自动生成了一堆的button列表用,因为屏幕高度问题没显示完全。

图片说明
想要的效果是这样的,也就是可以上下拖动,顶部蓝色layout固定不动。
图片说明
代码如下:


//布局如下:

        <!-- 顶部蓝色工具栏 -->
        <RelativeLayout
        android:id="@+id/fujin_top_llayout"
        android:layout_width="fill_parent"
        android:layout_height="36dp"
        android:background="#47a9d0"
        android:gravity="center_vertical"
        android:orientation="horizontal" >
        <ImageView
            android:id="@+id/fujin_top_llayout_lessthan"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="10dip"
            android:paddingLeft="10dp"
            android:src="@drawable/fujin_top_llayout_lessthan" />
        <TextView
            android:id="@+id/fujin_top_llayout_fujin"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_toRightOf="@+id/fujin_top_llayout_lessthan"
            android:paddingLeft="10dp"
            android:paddingTop="3dp"
            android:text="@string/fenlei_top_llayout_fenlei"
            android:textColor="#fff"
            android:textSize="16sp" />
        <ImageView
            android:id="@+id/fujin_top_llayout_dingwei"
            android:layout_width="70dp"
            android:layout_height="30dp"
            android:layout_toLeftOf="@+id/fujin_top_llayout_search"
            android:src="@drawable/iocn2" />
        <ImageView
            android:id="@+id/fujin_top_llayout_search"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_alignParentRight="true"
            android:paddingRight="12dp"
            android:src="@drawable/fujin_top_llayout_search" />
    </RelativeLayout>
    <!-- 顶部蓝色工具栏结束 -->

    <!-- title -->
    <RelativeLayout
        android:id="@+id/fenlei_title_rl"
        android:layout_width="match_parent"
        android:layout_height="28dp"
        android:layout_marginTop="20dp"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp" >
        <TextView
            android:id="@+id/fenlei_title_tv"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="@string/fenlei_top_llayout_fenlei"
            android:gravity="center"
            android:background="@drawable/fenlei_btn_fillet"
            android:textSize="15sp"
            android:textColor="@color/fenlei_btnlist_btn_textcolor"/>
    </RelativeLayout>
    <!-- title_over -->

    <!-- btnlist -->
    <LinearLayout 
        android:id="@+id/fujin_btnlist_tl"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_marginTop="15dp"
        android:orientation="vertical">
    </LinearLayout>
    <!-- btnlist_over -->

按钮列表是用代码自动生成的GridView,item是TextView。

//Activity代码如下:

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_quanbufenlei);

        initClassify();
        addview();
    }

    private void initClassify(){
        //此处是初始化一些数据,就不贴了
    }


    private void addview(){
        for(int i=1; i<=oc.getOneClassifylist().size();i++){
            ll=(LinearLayout) findViewById(R.id.fujin_btnlist_tl);
             switch (i) {
            case 1:
                addOneClassify(R.drawable.fujin_btnlist_iv_meishi, 
                        R.string.fujin_btnlist_tv_meishi);
                addTwoClassify(tc.getCatelist());
                break;
            case 2:
                addOneClassify(R.drawable.fujin_btnlist_iv_dianying, 
                        R.string.fujin_btnlist_tv_dianying);
                addTwoClassify(tc.getMovielist());
                break;
            case 3:
                addOneClassify(R.drawable.fujin_btnlist_iv_xiuxian, 
                        R.string.fujin_btnlist_tv_xiuxian);
                addTwoClassify(tc.getFallowlist());
                break;
            case 4:
                addOneClassify(R.drawable.fujin_btnlist_iv_wanggou, 
                        R.string.fujin_btnlist_tv_wanggou);
                addTwoClassify(tc.getShoplist());
                break;
            case 5:
                addOneClassify(R.drawable.fujin_btnlist_iv_shenghuo, 
                        R.string.fujin_btnlist_tv_shenghuo);
                addTwoClassify(tc.getLifelist());
                break;
            case 6:
                addOneClassify(R.drawable.fujin_btnlist_iv_jiudian, 
                        R.string.fujin_btnlist_tv_jiudian);
                addTwoClassify(tc.getGropshoplist());
                break;
            case 7:
                addOneClassify(R.drawable.fujin_btnlist_iv_lvyou, 
                        R.string.fujin_btnlist_tv_lvyou);
                addTwoClassify(tc.getTravellist());
                break;
            case 8:
                addOneClassify(R.drawable.fujin_btnlist_iv_liren, 
                        R.string.fujin_btnlist_tv_lireni);
                addTwoClassify(tc.getBeautylist());
                break;
            default:
                break;
            }
        }
    }

    /**
     * 获取Drawable类型的Img
     * @param id
     * @return
     */
    private BitmapDrawable getDrawableFromId(int id){  
        Resources res = getResources();  
        return (BitmapDrawable)res.getDrawable(id);  
    } 

    /**
     * 创建一级分类行
     * @param draimg
     * @param text
     */
    private void addOneClassify(int draimg ,int text){
        LinearLayout ll_one=new LinearLayout(FenleiActivity.this);
        ll_one.setPadding(15, 15, 0, 0);
        //oneclassifyimg
        oneClassify_img=new ImageView(FenleiActivity.this);
        oneClassify_img.setImageDrawable(getDrawableFromId(draimg));
        //onclassifytext
        oneClassify_text=new TextView(FenleiActivity.this);
        oneClassify_text.setText(text);
        oneClassify_text.setTextSize(15);
        oneClassify_text.setPadding(5, 3, 0, 0);

        ll_one.addView(oneClassify_img);
        ll_one.addView(oneClassify_text);

        ll.addView(ll_one, new LinearLayout.LayoutParams( 
                LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 
    }

    /**
     * 创建二级buttonlist(GridView)
     * @param btntext
     */
    private void addTwoClassify(List<String> Two_classify_list){

        gridView=new GridView(FenleiActivity.this);
        gridView.setVerticalSpacing(10);
        gridView.setHorizontalSpacing(15);
        gridView.setColumnWidth(60);
        gridView.setNumColumns(3);

        hashlist=new ArrayList<HashMap<String,Object>>();
        for(int j=0 ;j<Two_classify_list.size();j++){
            HashMap<String, Object> map= new HashMap<String, Object>();
            map.put("fenlei_btnlist_btn_text", Two_classify_list.get(j));
            hashlist.add(map);
        }
        sAdapter=new SimpleAdapter(this,hashlist,
                R.layout.fenlei_btnlist_item,
                new String[]{"fenlei_btnlist_btn_text"},new int[]{R.id.fenlei_btnlist_btn_text});
        gridView.setAdapter(sAdapter);
        LinearLayout ll_two=new LinearLayout(FenleiActivity.this);
        ll_two.setPadding(10, 0, 0, 0);

        ll_two.addView(gridView);
        ll.addView(ll_two, new LinearLayout.LayoutParams( 
                LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 

    }
  • 写回答

5条回答 默认 最新

  • danielinbiti 2015-05-23 08:47
    关注

    btnlist那一部分改改,增加scrollview

     <LinearLayout 
     android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginTop="15dp"
            android:orientation="vertical">
        <ScrollView 
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent"
            android:scrollbars="vertical">
            <LinearLayout 
                android:id="@+id/fujin_btnlist_tl"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginTop="15dp"
                android:orientation="vertical">
            </LinearLayout>
        </scrollView
    </LinearLayout>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值