import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.a.b.R;
/**
-
Title通用布局
-
@author Administrator
*/
public class MTitle extends LinearLayout {
private ImageView imgBack;
private TextView tvMid;
private ImageView imgRight;
private TextView tvRight;
public MTitle(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initView(context, attrs);
}
public MTitle(Context context, AttributeSet attrs) {
super(context, attrs);
initView(context, attrs);
}
private void initView(final Context context, AttributeSet attrs) {
View title = LayoutInflater.from(context).inflate(R.layout.app_title, null);
tvMid = (TextView) title.findViewById(R.id.tv_title_mid);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.TitleLinearLayout);
boolean isBack = a.getBoolean(R.styleable.TitleLinearLayout_isBack, false);
if (getTag() != null) {
tvMid.setText(this.getTag().toString());
}
imgBack = (ImageView) title.findViewById(R.id.img_back);
imgRight = (ImageView) title.findViewById(R.id.img_right);
tvRight = (TextView) title.findViewById(R.id.tv_title_right);
imgBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
((Activity) context).finish();
}
});
if (isBack) {
imgBack.setVisibility(View.VISIBLE);
}
title.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
this.addView(title);
}
public void setTitle(String str) {
if (str != null) {
tvMid.setText(str);
}
}
public String getTitle() {
return tvMid.getText().toString();
}
public ImageView getTitleRigthImg(int res) {
tvRight.setVisibility(View.INVISIBLE);
imgRight.setVisibility(View.VISIBLE);
imgRight.setImageResource(res);
return imgRight;
}
public ImageView getTitleLeftImg(int res) {
imgBack.setVisibility(View.VISIBLE);
imgBack.setImageResource(res);
return imgBack;
}
public TextView getTitleRightText(String str) {
imgRight.setVisibility(View.INVISIBLE);
tvRight.setVisibility(View.VISIBLE);
tvRight.setText(str);
return tvRight;
}
}
4、在.xml中引入自定义的标题栏:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:title=“http://schemas.android.com/apk/res-auto”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:background=“@color/colorbackhui”
android:orientation=“vertical”>
<com.youpinwallet.ypw.view.MTitle
android:id=“@+id/title”
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:layout_marginBottom=“@dimen/mdp_10”
android:tag=“我的优惠券”
title:isBack=“true” />
<com.jcodecraeer.xrecyclerview.XRecyclerView
android:id=“@+id/x_recyclerview”
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:layout_marginLeft=“@dimen/mdp_6”
android:layout_marginRight=“@dimen/mdp_6”
android:paddingBottom=“@dimen/mdp_10”
android:paddingTop=“@dimen/mdp_5”
android:visibility=“gone”
android:background=“@color/colorbackhui” />
5、在java代码中引用标题栏
title.setTitle(type.equals("WD") ? "我的优惠券" : "可使用优惠券"); title.getTitleRightText("使用规则").setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(CouponActivity.this, WebViewActivity.class); intent.putExtra("title", "优惠券使用规则"); intent.putExtra("url", ApiUtils.URL_COUPON_DEAL); startActivity(intent); } });
自绘控件
自绘控件的内容都是自己绘制出来的,在View的onDraw方法中完成绘制。
1、组合控件中2自定义属性;
2、组合控件中3;
重写三个构造方法;
重写onDraw,onMesure调用系统提供的:
3、组合控件中4引用到布局中;
继承控件
就是继承已有的控件,创建新控件,保留继承的父控件的特性,并且还可以引入新特性。
最后笔者收集整理了一份Flutter高级入门进阶资料PDF
以下是资料目录和内容部分截图
里面包括详细的知识点讲解分析,带你一个星期入门Flutter。还有130个进阶学习项目实战视频教程,让你秒变大前端。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
秒变大前端。
[外链图片转存中…(img-J9Z1DG0u-1714454430771)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!