我正在创建包含其他几个视图的视图:
位于'res/layout/view_no_content'
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical"
tools:context="com.gamma.collegeconnect.customs.NoContentView">
<ImageView
android:id="@+id/iv_no_content_image"
android:layout_width="62dp"
android:layout_height="62dp"
android:layout_marginBottom="4dp"
app:srcCompat="@drawable/ic_no_content_default" />
<TextView
android:id="@+id/tv_no_content_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textAllCaps="true"
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline6"
android:textSize="17sp"
tools:text="no content" />
<TextView
android:id="@+id/tv_no_content_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:maxWidth="320dp"
android:textSize="14sp"
tools:text="We couldn't find any thing related" />
<Button
android:id="@+id/btn_no_content_action"
style="@style/Widget.MaterialComponents.Button.UnelevatedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:gravity="center"
android:minWidth="165dp"
android:minHeight="51dp"
android:textSize="13sp"
tools:text="Action" />
这是相应的java类:
public class NoContentView extends FrameLayout {
public NoContentView(Context context) {
super(context);
init(context);
}
public NoContentView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init(context);
}
public NoContentView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
public NoContentView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init(context);
}
private void init(Context context) {
LayoutInflater.from(context).inflate(R.layout.view_no_content, this);
}
public void setup(@StringRes int title, @StringRes int text) {
setup(title, text, 0, null);
}
public void setup(@StringRes int title, @StringRes int text, @StringRes int actionButtonText, OnClickListener onActionButtonClickedListener) {
setup(title, text, actionButtonText, onActionButtonClickedListener, R.drawable.ic_no_content_default);
}
public void setup(@StringRes int title, @StringRes int text, @StringRes int actionButtonText, OnClickListener onActionButtonClickedListener, @DrawableRes int image) {
setup(title, text, actionButtonText, onActionButtonClickedListener, image, 0, false);
}
public void setup(@StringRes int title, @StringRes int text, @StringRes int actionButtonText, OnClickListener onActionButtonClickedListener, @DrawableRes int image, @ColorRes int tintColorRes) {
setup(title, text, actionButtonText, onActionButtonClickedListener, image, tintColorRes, true);
}
private void setup(@StringRes int title, @StringRes int text, @StringRes int actionButtonText, OnClickListener onActionButtonClickedListener, @DrawableRes int image, @ColorRes int tintColorRes, boolean hasTint) {
((TextView) findViewById(R.id.tv_no_content_title)).setText(title);
((TextView) findViewById(R.id.tv_no_content_text)).setText(text);
Button button = findViewById(R.id.btn_no_content_action);
if (onActionButtonClickedListener != null) {
FastUtils.showIfHidden(button);
button.setText(actionButtonText);
button.setOnClickListener(onActionButtonClickedListener);
} else {
FastUtils.hideIfShown(button);
}
ImageView imageView = findViewById(R.id.iv_no_content_image);
imageView.setImageResource(image);
if (hasTint)
imageView.setImageTintList(ColorStateList.valueOf(ContextCompat.getColor(getContext(), tintColorRes)));
}
}
炒得很好,一点问题都没有。我有一个问题,当包含在布局中时,视图“NoContentView”不会显示在 android studio 布局编辑器中。每当看到 NoContentView 标记时,我如何告诉 android studio 查看“view_no_content”布局文件中的布局