0

我正在创建包含其他几个视图的视图:

位于'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”布局文件中的布局

4

0 回答 0