mirror of
https://gitee.com/zhangsken/AndroidIDE.git
synced 2026-10-16 07:49:44 +08:00
fixed(uidesigner): some widgets are not included in widgets list
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
<vector android:height="24dp" android:viewportHeight="16"
|
||||
android:viewportWidth="16" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#9AA7B0" android:fillType="evenOdd" android:pathData="M1,3h14v10L1,13L1,3zM3,5v6h10L13,5L3,5z"/>
|
||||
</vector>
|
||||
@@ -470,31 +470,32 @@
|
||||
<string name="ui_category_widgets">Widgets</string>
|
||||
<string name="ui_category_layouts">Layouts</string>
|
||||
|
||||
<string name="widget_textview">TextView</string>
|
||||
<string name="widget_button">Button</string>
|
||||
<string name="widget_checkbox">CheckBox</string>
|
||||
<string name="widget_checked_textview">CheckedTextView</string>
|
||||
<string name="widget_edittext">EditText</string>
|
||||
<string name="widget_image_button">ImageButton</string>
|
||||
<string name="widget_image_view">ImageView</string>
|
||||
<string name="widget_progressbar">ProgressBar</string>
|
||||
<string name="widget_radio_button">RadioButton</string>
|
||||
<string name="widget_seekbar">SeekBar</string>
|
||||
<string name="widget_spinner">Spinner</string>
|
||||
<string name="layout_linear">LinearLayout</string>
|
||||
<string name="layout_relative">RelativeLayout</string>
|
||||
<string name="widget_auto_complete_textview">AutoCompleteTextView</string>
|
||||
<string name="widget_listview">ListView</string>
|
||||
<string name="widget_surfaceview">SurfaceView</string>
|
||||
<string name="widget_switch">Switch</string>
|
||||
<string name="widget_textureview">TextureView</string>
|
||||
<string name="widget_togglebutton">ToggleButton</string>
|
||||
<string name="widget_webview">WebView</string>
|
||||
<string name="widget_frame_layout">FrameLayout</string>
|
||||
<string name="widget_grid_layout">GridLayout</string>
|
||||
<string name="widget_linear_layout_horz">LinearLayout (H)</string>
|
||||
<string name="widget_linear_layout_vert">LinearLayout (V)</string>
|
||||
<string name="widget_relative_layout">RelativeLayout</string>
|
||||
<string name="widget_view" translatable="false">View</string>
|
||||
<string name="widget_textview" translatable="false">TextView</string>
|
||||
<string name="widget_button" translatable="false">Button</string>
|
||||
<string name="widget_checkbox" translatable="false">CheckBox</string>
|
||||
<string name="widget_checked_textview" translatable="false">CheckedTextView</string>
|
||||
<string name="widget_edittext" translatable="false">EditText</string>
|
||||
<string name="widget_image_button" translatable="false">ImageButton</string>
|
||||
<string name="widget_image_view" translatable="false">ImageView</string>
|
||||
<string name="widget_progressbar" translatable="false">ProgressBar</string>
|
||||
<string name="widget_radio_button" translatable="false">RadioButton</string>
|
||||
<string name="widget_seekbar" translatable="false">SeekBar</string>
|
||||
<string name="widget_spinner" translatable="false">Spinner</string>
|
||||
<string name="layout_linear" translatable="false">LinearLayout</string>
|
||||
<string name="layout_relative" translatable="false">RelativeLayout</string>
|
||||
<string name="widget_auto_complete_textview" translatable="false">AutoCompleteTextView</string>
|
||||
<string name="widget_listview" translatable="false">ListView</string>
|
||||
<string name="widget_surfaceview" translatable="false">SurfaceView</string>
|
||||
<string name="widget_switch" translatable="false">Switch</string>
|
||||
<string name="widget_textureview" translatable="false">TextureView</string>
|
||||
<string name="widget_togglebutton" translatable="false">ToggleButton</string>
|
||||
<string name="widget_webview" translatable="false">WebView</string>
|
||||
<string name="widget_frame_layout" translatable="false">FrameLayout</string>
|
||||
<string name="widget_grid_layout" translatable="false">GridLayout</string>
|
||||
<string name="widget_linear_layout_horz" translatable="false">LinearLayout (H)</string>
|
||||
<string name="widget_linear_layout_vert" translatable="false">LinearLayout (V)</string>
|
||||
<string name="widget_relative_layout" translatable="false">RelativeLayout</string>
|
||||
|
||||
<!-- GIT -->
|
||||
<string name="git_clone">Clone</string>
|
||||
|
||||
Binary file not shown.
+11
@@ -19,7 +19,11 @@ package com.itsaky.androidide.inflater.internal.adapters
|
||||
|
||||
import android.widget.Spinner
|
||||
import com.itsaky.androidide.annotations.inflater.ViewAdapter
|
||||
import com.itsaky.androidide.annotations.uidesigner.IncludeInDesigner
|
||||
import com.itsaky.androidide.annotations.uidesigner.IncludeInDesigner.Group.WIDGETS
|
||||
import com.itsaky.androidide.inflater.AttributeHandlerScope
|
||||
import com.itsaky.androidide.inflater.R
|
||||
import com.itsaky.androidide.inflater.models.UiWidget
|
||||
|
||||
/**
|
||||
* Attribute adapter for [Spinner].
|
||||
@@ -27,6 +31,7 @@ import com.itsaky.androidide.inflater.AttributeHandlerScope
|
||||
* @author Akash Yadav
|
||||
*/
|
||||
@ViewAdapter(Spinner::class)
|
||||
@IncludeInDesigner(group = WIDGETS)
|
||||
open class SpinnerAdapter<T : Spinner> : AbsSpinnerAdapter<T>() {
|
||||
override fun createAttrHandlers(create: (String, AttributeHandlerScope<T>.() -> Unit) -> Unit) {
|
||||
super.createAttrHandlers(create)
|
||||
@@ -40,4 +45,10 @@ open class SpinnerAdapter<T : Spinner> : AbsSpinnerAdapter<T>() {
|
||||
create("gravity") { view.gravity = parseGravity(value) }
|
||||
create("popupBackground") { view.setPopupBackgroundDrawable(parseDrawable(context, value)) }
|
||||
}
|
||||
|
||||
override fun createUiWidgets(): List<UiWidget> {
|
||||
return listOf(
|
||||
UiWidget(Spinner::class.java, R.string.widget_spinner, R.drawable.ic_widget_spinner)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+11
@@ -23,8 +23,12 @@ import android.text.util.Linkify
|
||||
import android.util.TypedValue
|
||||
import android.widget.TextView
|
||||
import com.blankj.utilcode.util.SizeUtils
|
||||
import com.itsaky.androidide.annotations.uidesigner.IncludeInDesigner
|
||||
import com.itsaky.androidide.annotations.uidesigner.IncludeInDesigner.Group.WIDGETS
|
||||
import com.itsaky.androidide.inflater.AttributeHandlerScope
|
||||
import com.itsaky.androidide.inflater.IView
|
||||
import com.itsaky.androidide.inflater.R
|
||||
import com.itsaky.androidide.inflater.models.UiWidget
|
||||
import com.itsaky.androidide.inflater.utils.newAttribute
|
||||
import java.util.regex.Pattern
|
||||
|
||||
@@ -34,6 +38,7 @@ import java.util.regex.Pattern
|
||||
* @author Akash Yadav
|
||||
*/
|
||||
@com.itsaky.androidide.annotations.inflater.ViewAdapter(TextView::class)
|
||||
@IncludeInDesigner(group = WIDGETS)
|
||||
open class TextViewAdapter<T : TextView> : ViewAdapter<T>() {
|
||||
|
||||
override fun createAttrHandlers(create: (String, AttributeHandlerScope<T>.() -> Unit) -> Unit) {
|
||||
@@ -118,6 +123,12 @@ open class TextViewAdapter<T : TextView> : ViewAdapter<T>() {
|
||||
create("typeface") { view.typeface = parseTypeface(value) }
|
||||
}
|
||||
|
||||
override fun createUiWidgets(): List<UiWidget> {
|
||||
return listOf(
|
||||
UiWidget(TextView::class.java, R.string.widget_textview, R.drawable.ic_widget_textview)
|
||||
)
|
||||
}
|
||||
|
||||
override fun applyBasic(view: IView) {
|
||||
super.applyBasic(view)
|
||||
view.addAttribute(newAttribute(view = view, name = "text", value = "AndroidIDE"))
|
||||
|
||||
+19
-10
@@ -31,11 +31,15 @@ import androidx.annotation.ChecksSdkIntAtLeast
|
||||
import androidx.core.view.updatePadding
|
||||
import androidx.core.view.updatePaddingRelative
|
||||
import com.itsaky.androidide.annotations.inflater.ViewAdapter
|
||||
import com.itsaky.androidide.annotations.uidesigner.IncludeInDesigner
|
||||
import com.itsaky.androidide.annotations.uidesigner.IncludeInDesigner.Group.WIDGETS
|
||||
import com.itsaky.androidide.inflater.AttributeHandlerScope
|
||||
import com.itsaky.androidide.inflater.IAttribute
|
||||
import com.itsaky.androidide.inflater.INamespace
|
||||
import com.itsaky.androidide.inflater.IView
|
||||
import com.itsaky.androidide.inflater.IViewAdapter
|
||||
import com.itsaky.androidide.inflater.R
|
||||
import com.itsaky.androidide.inflater.models.UiWidget
|
||||
import com.itsaky.androidide.inflater.utils.newAttribute
|
||||
|
||||
/**
|
||||
@@ -44,6 +48,7 @@ import com.itsaky.androidide.inflater.utils.newAttribute
|
||||
* @author Akash Yadav
|
||||
*/
|
||||
@ViewAdapter(forView = View::class)
|
||||
@IncludeInDesigner(group = WIDGETS)
|
||||
open class ViewAdapter<T : View> : IViewAdapter<T>() {
|
||||
|
||||
override fun createAttrHandlers(create: (String, AttributeHandlerScope<T>.() -> Unit) -> Unit) {
|
||||
@@ -101,38 +106,42 @@ open class ViewAdapter<T : View> : IViewAdapter<T>() {
|
||||
create("translationZ") { view.translationZ = parseFloat(value) }
|
||||
create("visibility") { view.visibility = parseVisibility(value) }
|
||||
}
|
||||
|
||||
override fun AttributeHandlerScope<T>.applyLayoutParams() : Boolean {
|
||||
|
||||
|
||||
override fun AttributeHandlerScope<T>.applyLayoutParams(): Boolean {
|
||||
|
||||
var applied = false
|
||||
|
||||
|
||||
if (layoutParams is LinearLayout.LayoutParams) {
|
||||
applied = applyLinearLayoutParams(layoutParams, name, value)
|
||||
}
|
||||
|
||||
|
||||
if (!applied && layoutParams is RelativeLayout.LayoutParams) {
|
||||
applied = applyRelativeLayoutParams(layoutParams, file.resName, name, value)
|
||||
}
|
||||
|
||||
|
||||
if (!applied && layoutParams is FrameLayout.LayoutParams) {
|
||||
applied = applyFrameLayoutParams(layoutParams, name, value)
|
||||
}
|
||||
|
||||
|
||||
if (!applied && layoutParams is MarginLayoutParams) {
|
||||
applied = applyMarginParams(context, layoutParams, name, value)
|
||||
}
|
||||
|
||||
|
||||
if (!applied) {
|
||||
applied = applyLayoutParams(context, layoutParams, name, value)
|
||||
}
|
||||
|
||||
|
||||
if (applied) {
|
||||
view.layoutParams = layoutParams
|
||||
}
|
||||
|
||||
|
||||
return applied
|
||||
}
|
||||
|
||||
override fun createUiWidgets(): List<UiWidget> {
|
||||
return listOf(UiWidget(View::class.java, R.string.widget_view, R.drawable.ic_widget_view))
|
||||
}
|
||||
|
||||
override fun applyBasic(view: IView) {
|
||||
view.addAttribute(newAttribute(view = view, name = "layout_height", value = "wrap_content"))
|
||||
view.addAttribute(newAttribute(view = view, name = "layout_width", value = "wrap_content"))
|
||||
|
||||
Reference in New Issue
Block a user