Proper way of showing a Texture2D in the inspector?

I have Texture2D for my ScriptableObject but I want to show a big image of it on the inspector.
I’ve tried it with using drawers and editors.

With drawers, I think I have to make a new class that inherits or contains the Texture2D if I wanted to show it. This feels more ideal but if I try and pull the Texture2D from the serialized object, the image constantly flickers, disappearing.

If I use the editor, I can’t just show the image, I got to make the whole window for each field I want to show right? Seems like overkill, but at least the image isn’t flickering.

What is the best way to approach this?
Thanks.

Apparently the Texture2D flickering has been a bug for at least 5 years. One solution is to just make it a background and the problem will go away.

See this: Drawing a texture in a custom PropertyDrawer - Questions & Answers - Unity Discussions

With a drawer I managed to just do it like so:

GUIStyle style = new GUIStyle();
style.normal.background = item.itemImage.sprite;
position = EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Keyboard), label);
var rectImage = new Rect(position.x - 70, 85, 64, 64);
EditorGUI.LabelField(rectImage, GUIContent.none, style);
EditorGUI.PropertyField(position, property.FindPropertyRelative("sprite"), GUIContent.none);