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);
  • 相关阅读:
    第03组 团队Git现场编程实战
    团队Git现场编程实战
    第二次结对编程作业
    团队项目-需求分析报告
    团队项目-选题报告
    第一次结对编程作业
    第一次个人编程作业
    第一次博客作业
    第四组 团队Git现场编程实战
    第二次结对编程作业
  • 原文地址:https://www.cnblogs.com/android-zcq/p/5572423.html
Copyright © 2011-2022 走看看