zoukankan      html  css  js  c++  java
  • 动态设置 view 在布局中位置

    一.概述

    有时项目需要动态设置一个 底部列表,比如 popupwindow ,listview 底部显示 ,所以记录一下

    此处,

    android.support.v7.widget.CardView 中包含了一个listview,而我要实现的是, 点击mLayout这个布局上面的 6个按钮, 在底部弹出不同的listview.  项目中
    mLayout是一个 LinearLayout

    二.代码如下

      View view = View.inflate(getActivity(),R.layout.template_listview,null);
            cardView = (CardView) view.findViewById(R.id.cardView);
            cardView.setVisibility(View.GONE);
            listView = (ListView) view.findViewById(R.id.listView);
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
            params.gravity = Gravity.BOTTOM;
            cardView.setLayoutParams(params);
            mLayout.addView(cardView);

    发现 

    params.gravity = Gravity.BOTTOM; 根本就不起作用,原来 主布局 mlayout 我定义成了 垂直的,定义成 水平布局就好了.

    当 android:orientation="vertical"  时, 只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。

    当 android:orientation="horizontal" 时, 只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。

    如果mLayout 是一个 相对布局,而我们想把这个 cardView 控件显示到 相对布局底部,可以这么写

     View view = View.inflate(getActivity(),R.layout.template_listview,null);
            cardView = (CardView) view.findViewById(R.id.cardView);
            cardView.setVisibility(View.GONE);
            listView = (ListView) view.findViewById(R.id.listView);
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
            params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
            cardView.setLayoutParams(params);
            mLayout.addView(cardView);
  • 相关阅读:
    微信小程序 | 小程序的转发问题
    开发辅助 | 前端开发工程师必懂的 UI 知识
    微信小程序 | canvas绘图
    服务端 | Linux 学习总结 (一)
    移动端适配 | 适配方案总结
    开发工具 | 利用 deployd 搭建个人博客
    1.10 组织好代码文件,要有“用户思维”
    1.9 组织好代码段,让人对它“一见钟情”
    《计算机是怎样跑起来的》读书笔记(1)
    实用网站收藏
  • 原文地址:https://www.cnblogs.com/android-zcq/p/5572423.html
Copyright © 2011-2022 走看看