zoukankan      html  css  js  c++  java
  • U2

     1 android的XML文件(包括layout下的和values下的)注释一般采用 <!--注释内容 -->的方式进行,也就是说,采用//是行不通的,不信你可以试试看。
    
    
       2 在XML中,形如    <Button           />      的表示方式,其中“/>”的含义表示这个XML中没有内文,他是一个最小组成单元,也就是说他的中间不能包含其他任何< >的代码,所以在<Button />中间注释会出现错误 
    dp:密度无关像素(dip) 无论屏幕的分辨率如何,总能显示相同的大小,一般使用dp作为控件与布局的宽高单位。
    sp:可伸缩像素。在设置字体大小时使用。
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:tools="http://schemas.android.com/tools"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent"
     6     tools:context = "com.example.helloworld.relativelayout.MainActivity">
     7     <!-- context  要写文档对应目录下的 -->
     8     <!-- android:layout_toRightOf 后面的@+id/button要和第一个Button  一致,包括空格
     9     不然或出错  ,没写android:layout_below 会让布局混乱  -->
    10     <Button
    11         android:id = "@+id/button"
    12         android:layout_width="wrap_content"
    13         android:layout_height="wrap_content"
    14         android:layout_alignParentTop = "true"
    15         android:layout_marginTop = "100dp"
    16         android:layout_marginLeft = "50dp"
    17         android:text = "Button1"/>
    18      <Button
    19          android:id = "@+id/button2"
    20          android:layout_width="wrap_content"
    21          android:layout_height="wrap_content"
    22          android:layout_toRightOf = "@+id/button"
    23          android:layout_below = "@+id/button"
    24          android:layout_marginTop = "15dp"
    25          android:text = "Button2"/>
    26 </RelativeLayout>
    package com.example.helloworld;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    public class MainActivity extends AppCompatActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.layout1); 要改成layout1才可以
        }
    }
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.helloworld">
     <!--  android:label 后的内容是可以改的  -->
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
    
          android:label="布局管理器"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    <!-- 网格布局  实现计算器  -->
    
    <!--  要>=6列  -->
    <?xml version="1.0" encoding="utf-8"?>
    <GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:columnCount="4"
        android:rowCount = "6"  
        android:orientation="horizontal">
        <Button  android:text = "/"
            android:layout_column="3"/>
        <Button  android:text = "1"/>
        <Button  android:text = "2"/>
        <Button  android:text = "3"/>
        <Button  android:text = "*"/>
        <Button  android:text = "4"/>
        <Button  android:text = "5"/>
        <Button  android:text = "6"/>
        <Button  android:text = "-"/>
        <Button  android:text = "7"/>
        <Button  android:text = "8"/>
        <Button  android:text = "9"/>
        <Button  android:text = "+"
             android:layout_gravity = "fill_vertical"
             android:layout_rowSpan="2"/>
        <Button  android:text = "0"/>
        <Button  android:text = "="
            android:layout_gravity = "fill_horizontal"
            android:layout_columnSpan="2"/>
    </GridLayout>
    1 1)fill_parent
    2 设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。这跟Windows控件的dockstyle属性大体一致。设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏幕。
    3 2) wrap_content
    4 设置一个视图的尺寸为wrap_content将强制性地使视图扩展以显示全部内容。以TextView和ImageView控件为例,设置为wrap_content将完整显示其内部的文本和图像。布局元素将根据内容更改大小。设置一个视图的尺寸为wrap_content大体等同于设置Windows控件的Autosize属性为True。
    5 3)match_parent
    6 Android2.2中match_parent和fill_parent是一个意思 .两个参数意思一样,match_parent更贴切,于是从2.2开始两个词都可以用。那么如果考虑低版本的使用情况你就需要用fill_pa
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent">
     5     android:orientation = "vertical">
     6     <!-- 单选按钮  必须写明id,不然都可选择 -->
     7     <RadioGroup
     8         android:layout_width = "match_parent"
     9         android:layout_height = "wrap_content">
    10         <RadioButton
    11              android:id = "@+id/radiobutton1"
    12             android:layout_width="wrap_content"
    13             android:layout_height="wrap_content"
    14             android:checked = "true"
    15             android:text = ""
    16             />
    17         <RadioButton
    18             android:id = "@+id/radiobutton2"
    19             android:layout_width="wrap_content"
    20             android:layout_height="wrap_content"
    21 
    22             android:text = ""
    23             />
    24     </RadioGroup>
    25 
    26 </LinearLayout>

    我们可以发现这三个button并没有将整个屏幕占据,而是根据内容适配大小。

    我们在button2里面添加一个属性  android:layout_weight="1" ,发现布局变成这样了:

    我们发现这次屏幕被三个button占据了,而且第一个和第三个button还是保持与内容适配大小,而第二个button而占据了剩余屏幕空间。

    我们对上面的情况进行讲解:

    1、我们只有在button2使用了layout_weight属性,并赋值为1;但是button1和button2并没有使用这个属性,根据API可以知道,他们的layout_weight属性等于0。

    2、LinearLayout如果显式包含layout_weight属性时,会measure两次;第一次将正常计算三个button的宽高,第二次将结合layout_weight的值分配剩余的空间。

      通俗点来总结:Android系统先按照你设置的3个Button高度Layout_height=wrap_content,给你分配好他们3个的高度,然后会把剩下来的屏幕空间全部赋给Button2,因为只有他的权重值是1,这也是为什么Button2占了那么大的一块空间。

  • 相关阅读:
    permission 文档 翻译 运行时权限
    TabLayout ViewPager Fragment 简介 案例 MD
    Log 日志工具类 保存到文件 MD
    OkHttp 官方wiki 翻译 MD
    Okhttp 简介 示例 MD
    OkHttp 官方Wiki之【使用案例】
    DialogPlus
    倒计时 总结 Timer Handler CountDownTimer RxJava MD
    RecyclerView 判断滑到底部 顶部 预加载 更多 分页 MD
    CSS3的媒体查询(Media Queries)与移动设备显示尺寸大全
  • 原文地址:https://www.cnblogs.com/tingtin/p/10648078.html
Copyright © 2011-2022 走看看