zoukankan      html  css  js  c++  java
  • 探究android控件及布局

    控件(widget)

    1. TextView(该控件的一些需要注意的属性,下同)

    gravity="center"
    textSize="24sp"
    textColor="#00ff00"
    (完整的前面应该加android:,为了方便均忽略)

    2. EditText

    hint="Type something here"
    maxLines="2"

    3. ImageView

    src="@drawable/ic_launcher"
    imageView.setImageResoure(R.drawable.jetlly)

    4. ProgressBar

    1
    2
    progressBar.setVisibility(View.GONE)//设置不可见,且不占用任何空间
    progressBar.setVisibility(View.VISIBLE)//设置可见

    实际上需要去添加逻辑(比如当数据加载完成时执行:

    1
    progressBar.setVisibility(View.GONE)//设置不可见,且不占用任何空间

    不然,ProgressBar会一直转
    还有功能:

    1
    2
    progressbar.getVisibility()
    //有三种值:View.GONE,View.VISIBLE

    在ProgressBar参数中style="?android:attr/progressBarStyleHorizontal"
    可将进度条变成水平,参数max="100"设置水平进度条的最大值

    5. AlertDialog

    1
    2
    3
    4
    5
    6
    AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);//可以理解为对话框建立在这个活动之上
    dialog.setTitle("This is title");//设置对话框的标题
    dialog.setMessage("someting important");//内容
    dialog.setCancelable(false);//设置该对话框是否可由back键退回
    dialog.setPositiveButton("OK",new DialogInterface.OnclickListener(){})//为OK键设置监听器
    dialog.setNegativeButton("CANCEL",new DialogInterface.OnClickListener(){})

    注意:AlertDialog在程序里面写,不再布局里写

    6. ProgressDialog

    1
    2
    3
    4
    5
    ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
    progressDialog.setTitle("wait a moment!");
    progressDialog.setMessage("Loding...");
    progressDialog.setCancelable(false);
    progressDialog.show();

    与AlertDialog类似

    四大布局(Layout)

    1. LinearLayout

    layout_gravity属性

    orientation的方向一定是与layout_gravity方向正交,解释如下:

    如果orientation="vertical",那么就只有水平方向的对齐有效
    此时控件的layout_gravity"就有三种值:

    • left
    • center_horizontal
    • right

    同理,如果orientation="horizontal"
    此时控件的layout_gravity有三种值:

    • top
    • center_vertical
    • bottom

    ####### layout_weight(权重)
    orientation="horizontal",此时xml中有EditTextButton,设置他们的layout_width="0dp",若设置EditTextlayout_weight="3",设置Buttonlayout_weight="2",前者占屏幕的3/5,后者占2/5

    2. RelativeLayout

    控件相对父布局定位
    • layout_alignParentTop
    • layout_alignparentBottom
    • layout_alignParentRight
    • layout_alignParentLeft
    • laout_centerInParent
    控件相对控件定位
    • layout_below
    • layout_toRightOf
    • layout_toLeftOf
    • layout_above
    边缘对齐(就试验的情况下,貌似此处orientation不顶用)
    • layout_alignLeft
    • layout_alignRight
    • layout_alignTop
    • layout_alignBottom

    3. FrameLayout

    所有控件都摆放在左上角

    4.TableLayout

    1
    2
    3
    4
    //一对这样的标签就表示一行
    <TableRow>
    //一个组件表示一列
    </TableRow>
    • 需要注意的是,《第一行代码》中当一行有TextViewEditText时,TextView只有layout_height属性,这可能是由于TableLayout有自己的关于每行中列宽度的规定,以后遇到这种情况再做更正
    • 合并单元格:layout_span="2"表示横跨两列
    • TableLayout头部添加android:stretchColumns="1",即将第二列拉伸,0则拉伸第一列
  • 相关阅读:
    Nginx编译安装
    Docker下mysql容器开启binlog日志(保留7天)
    podman
    error: audit:backlog limit exceeded
    64位win2003/win2008系统IIS6.0/7.5配置PHP的方法
    iis7.5安装配置php环境详细清晰教程,三步实现【图文】
    Windows下IIS+PHP 5.2的安装与配置
    无线路由MAC地址过滤安全可靠性讨论
    debian flam3 源码
    debian flam3 依赖文件
  • 原文地址:https://www.cnblogs.com/gabygoole/p/5299845.html
Copyright © 2011-2022 走看看