第一行代码Android-------第二章控件部分

Posted karryzhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一行代码Android-------第二章控件部分相关的知识,希望对你有一定的参考价值。

一、控件

1、大小

    match_parenr:与父布局大小一样

    fill_parent:与match_parent一样

    wrap_content:控件大小刚好包住里面内容

 

2、TextView   在界面上显示一段文字

        android:text = "显示的文字"

        android:gravity:"文字对齐方式" //可选值有top、bottom、right、center,可以用|来指定多个值

        android:textSize:文字大小

        android:textColor :文字颜色

3、Button 按钮

        android:text:显示文字

        android:textAllCaps:大小写转换禁用、默认全部转换为大写

        注册监听器

          button.setOnClickListener(new View.OnClickListener(){

              public void onClick(View v){}

              })  

4、EditText 输入和编辑内容

        android:hint="提示输入的内容"

        android:maxLines="最多输入行数"

5、ImageView 展示图片

        android:src="@drawable/图片"

        更改图片内容

        image.setImageResource();

6、progressBar 进度条

        android:visibility=“是否可见”、 visibility 可见  invisible隐藏 gone 完全不可见 且不占据空间

        修改样式

            style:"?android:attr/progressBarStyleHorizontal"//水平进度条

 

        设置可见性

          setVisibility(VIew.VISIABLE);//View.INVISIBLE,View.GONE;

7、AlterDialog

    弹出对话框

8、ProgressDialog

二、四种布局

  1、LinearLayout线性布局

    android:orientation 方向

    android:layout_gravity=布局中位置

    android:layout_weight=控件大小比例

  2、RelativeLayout 相对布局

  3、FrameLayout 帧布局

  4、百分比布局

三、自定义控件

  1、创建布局

    新建layout.xml文件

  2、在mainlayout.xml文件中引入布局文件

    <include layout="layout.xml">

  3、编写事件

    LayoutInflater.from(Context).inflater(R.layout.XXX,this);

  4、或者在布局文件中引入自定义控件事件文件

      <packagename.activityfile

      android:layout_width=""

      android:layout_height=""/>

四、ListView 用于展示大量数据

  1、编写布局文件及展示的布局文件

       <ListView

        andriod:id=

        andrioid:layout_width=""

        andriod:layout_height="">

  2、新建展示的类

    class Fruit{}

  3、重写适配器Adapter

    public class FruitAdapter extends ArrayAdapter<Fruit>{

      private int resourceId;

      public FruitAdapter(Context context,int textViewResourceId,List<Fruit>objects){

        super(context,textViewResource,objects);

        resourceId = textViewResourceId;

      }

      public View getView(int position,View convertView,ViewGroup parent){

        Fruit fruit = getItem(position);

        View view = LayoutInflater.from(getcontext()).inflate(resourceId,parent,flase);

        TextView textview =view.findViewById(R.id.textview);

        return view;

      }

  4、修改mainActivity

     FruitAdapter fruitadapter = new FruitAdapter(MainActivity.this,R.layout.fruit_item,fruitlist);//展示的上下文,layout布局,展示的数据list

     ListView listview = findViewById(R.id.list_view);

     listview.setAdapter(adapter);

  5、优化

       1.converView,将之前加载好的布局进行缓存,以便之后可以复用

        if(convertView == null){

          view = LayoutInflater.from(getContext()).inflater(resourceId,parent,false);

          }else{

          view = convertView;

          }

       2、创建viewHolder内部类,对控件实例进行缓存,从而只获取一次布局实例

 

}

五、RecyclerView  对ListView进行优化

   1、引入

     在build.gradle中dependence中添加

        implement ‘com.android.support:recyclerview-v7:24.2.1‘

     之后sync now进行同步

  2、使用 在layout文件中

    <android.support.v7.widget.RecyclerView

    android:id="@+id/"

    android:layout_wight=" "

    android:layout_height=""  />

  3、创建适配器

    public class  FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder>{

      static   class ViewHolder extneds Recycler.ViewHolder{  }; // viewHolder 内部类

      public FruitAdapter (){ }; //构造函数

      public ViewHolder onCreateViewHolder(ViewGroup parent,int position){

        View view = LayoutInflate.from(parent.getContext()).inflate(R.layour.fruit_layout,parent,false);

        ViewHolder viewholder = new ViewHolder(view);

        return viewholder;

      }

      public viod onBindViewHolder(ViewHolder holder ,int position){

        Fruit fruit  = furitlist.get(position);

        holder.fruitImage.setImageREsource(fruit.getImageId());

        holder.fruitname.setText(fruit.getname());

      }

      public int getItemCount(){

        return fruitlist.size();

      }

      }

     4、修改mainActivity

      RecyclerView recyclerview = (RecyclerView)findViewById(R.layout.id.recyclerview);

      LinerLayoutManager layoutmanage = new LinerLayoutManager(this);

      recycleView.setLayoutManager(layoutManager);

      FruitAdapter adapter = new FruitADapter(fruitlist);

      recyclerView.setAdapter(adapter);

 

以上是关于第一行代码Android-------第二章控件部分的主要内容,如果未能解决你的问题,请参考以下文章

最常用和最难用的控件--ListView(Android第一行代码)

多个C#textBox控件怎样执行同一操作

第一行代码 Android 第二版到货啦

Android第一行代码第二版过时操作解决方法

Android第一行代码-UI

Android第一行代码-UI