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则拉伸第一列
  • 相关阅读:
    September 29th 2017 Week 39th Friday
    September 28th 2017 Week 39th Thursday
    September 27th 2017 Week 39th Wednesday
    September 26th 2017 Week 39th Tuesday
    September 25th 2017 Week 39th Monday
    September 24th 2017 Week 39th Sunday
    angular2 学习笔记 ( Form 表单 )
    angular2 学习笔记 ( Component 组件)
    angular2 学习笔记 ( Http 请求)
    angular2 学习笔记 ( Router 路由 )
  • 原文地址:https://www.cnblogs.com/gabygoole/p/5299845.html
Copyright © 2011-2022 走看看