安卓自界说控件

打印 上一主题 下一主题

主题 651|帖子 651|积分 1953

引入结构

  首先创建一个项目,创建一个空的活动。然后右键单击res/layout创建一个Layout Resource File文件,取名title.xml。
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:orientation="horizontal"
  4.     android:layout_width="match_parent"
  5.     android:layout_height="wrap_content">
  6.     <Button
  7.         android:id="@+id/title_back"
  8.         android:layout_width="wrap_content"
  9.         android:layout_height="wrap_content"
  10.         android:layout_gravity="center"
  11.         android:layout_margin="5dp"
  12.         android:text="Back"
  13.         android:textColor="#fff" />
  14.     <TextView
  15.         android:id="@+id/title_text"
  16.         android:layout_width="0dp"
  17.         android:layout_height="wrap_content"
  18.         android:layout_gravity="center"
  19.         android:layout_weight="1"
  20.         android:gravity="center"
  21.         android:text="Tittle Text"
  22.         android:textColor="#000"
  23.         android:textSize="24sp" />
  24.     <Button
  25.         android:id="@+id/title_edit"
  26.         android:layout_width="wrap_content"
  27.         android:layout_height="wrap_content"
  28.         android:layout_gravity="center"
  29.         android:layout_margin="5dp"
  30.         android:text="Edit"
  31.         android:textColor="#fff" />
  32. </LinearLayout>
复制代码
  写好自界说结构之后举行引入。
  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.     <include layout="@layout/title" />
  6. </LinearLayout>
复制代码
  引入结构文件之后,修改活动文件。
  1. public class MainActivity extends AppCompatActivity {
  2.     @Override
  3.     protected void onCreate(Bundle savedInstanceState) {
  4.         super.onCreate(savedInstanceState);
  5.         setContentView(R.layout.activity_main);
  6.         // 新加代码
  7.         ActionBar actionbar = getSupportActionBar();
  8.         if(actionbar != null){
  9.             actionbar.hide();
  10.         }
  11.         // ---------------
  12.     }
  13. }
复制代码
  调用getSupportActionBar()方法来得到ActionBar的实例,然后再调用它的hide()方法将标题栏隐藏起来。

创建自界说控件

  先创建一个TitleLayout文件,把它与title.xml文件关联起来。
  1. public class TitleLayout extends LinearLayout {
  2.     public TitleLayout(Context context, AttributeSet attrs){
  3.         super(context, attrs);
  4.         LayoutInflater.from(context).inflate(R.layout.title, this);
  5.     }
  6. }
复制代码
  之后在activity_main.xml文件中添加这个自界说控件。
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2.     android:layout_width="match_parent"
  3.     android:layout_height="match_parent" >
  4.         <!--修改内容-->
  5.     <com.example.uicustomviews.TitleLayout
  6.         android:layout_width="match_parent"
  7.         android:layout_height="match_parent" />
  8.     <!--修改内容-->
  9. </LinearLayout>
复制代码
  添加自界说控件和添加平凡控件的方式基本是一样的,只不过在添加自界说控件的时候,我们需要指明控件的完整类名,包名在这里是不可以省略的。
  给标题栏添加点击事件。
  1. public class TitleLayout extends LinearLayout {
  2.     public TitleLayout(Context context, AttributeSet attrs){
  3.         super(context, attrs);
  4.         LayoutInflater.from(context).inflate(R.layout.title, this);
  5.         // 添加代码
  6.         Button titleBack = (Button) findViewById(R.id.title_back);
  7.         Button titleEdit = (Button) findViewById(R.id.title_edit);
  8.         titleBack.setOnClickListener(new OnClickListener() {
  9.             @Override
  10.             public void onClick(View v) {
  11.                 ((Activity) getContext()).finish();
  12.             }
  13.         });
  14.         titleEdit.setOnClickListener(new OnClickListener() {
  15.             @Override
  16.             public void onClick(View v) {
  17.                 Toast.makeText(getContext(), "You clicked Edit button",Toast.LENGTH_SHORT).show();
  18.             }
  19.         });
  20.         // --------
  21.     }
  22. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小秦哥

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表