[英]How to add padding in drawable
我有自定义EditText
drawable:
edit_text_selector
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@drawable/edit_text_background_on" />
<item android:state_focused="false" android:drawable="@drawable/edit_text_background_off" />
</selector>
edit_text_background_on
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape>
<solid android:color="@color/main_color" />
</shape>
</item>
<item
android:bottom="1.5dp"
android:left="1.5dp"
android:right="1.5dp">
<shape>
<solid android:color="@color/background_color" />
</shape>
</item>
<item
android:bottom="5.0dp" >
<shape>
<solid android:color="@color/background_color" />
</shape>
</item>
</layer-list>
edit_text_background_off
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape>
<solid android:color="@color/edittext_off_color" />
</shape>
</item>
<item
android:bottom="1.5dp"
android:left="1.5dp"
android:right="1.5dp">
<shape>
<solid android:color="@color/background_color" />
</shape>
</item>
<item android:bottom="5.0dp">
<shape>
<solid android:color="@color/background_color" />
</shape>
</item>
</layer-list>
我想在EditText中使用填充,以使文本不在EditText的最左侧。
尝试使用此功能,但不起作用。
<inset android:insetLeft="6dip"/>
如何在EditText drawable中添加填充? 我不想将其放在XML布局的每个EditText中。
要在EditText中添加填充,您需要创建自定义editText,覆盖onLayout()方法并在该方法中设置填充,例如
public class CustomEditText extends EditText
{
public CustomEditText(Context context)
{
super(context);
}
public CustomEditText(Context context,AttributeSet attrs)
{
super(context, attrs);
}
public CustomEditText(Context context,AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
}
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
// set the padding here
this.setPadding(20,20,20, 20);
super.onLayout(changed, left, top, right, bottom);
}
}
我发现了这个。希望对您有所帮助。 这是逻辑。 您需要对其进行自定义。 这是主布局,您可以在其中添加edittext
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#eee">
<!-- Input Group -->
<EditText style="@style/Widget.Group.Top" />
<EditText style="@style/Widget.Group" />
<EditText style="@style/Widget.Group.Bottom" />
<!-- Single item -->
<EditText style="@style/Widget.Group.Single" />
</LinearLayout>
然后在样式文件中添加一些样式
<style name="Widget.Group" parent="@android:style/Widget">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">46dp</item>
<item name="android:layout_marginLeft">10dp</item>
<item name="android:layout_marginRight">10dp</item>
<item name="android:layout_marginTop">-1dp</item> <!-- Ensures we don't get a 2 dp top stroke -->
<item name="android:padding">4dp</item>
<!--<item name="android:background">@drawable/bg_input_group</item>-->
</style>
<style name="Widget.Group.Top">
<item name="android:layout_marginTop">10dp</item>
<!--<item name="android:background">@drawable/bg_input_group_top</item>-->
</style>
<style name="Widget.Group.Bottom">
<item name="android:layout_marginTop">20dp</item>
<!--<item name="android:background">@drawable/bg_input_group_bottom</item>-->
</style>
<style name="Widget.Group.Single" parent="Widget.Group.Top">
<!--<item name="android:background">@drawable/bg_input_group_single</item>-->
</style>
有关更多详细信息,请单击此处 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.