如何对齐微调器等于edittext的宽度

时间:2013-02-25 09:24:44

标签: android spinner

如何在所有屏幕中对齐spinner以显示相等的宽度?在我的代码spinner中,在不同的屏幕中显示不同的宽度我该怎么办?我给定了固定长度

 android:layout_marginRight="45dp"
 android:layout_marginLeft="45dp"  

edittextspinnerspinner在不同屏幕中显示不同的宽度如何解决此问题?我这是我的屏幕http://imgur.com/RtWNgNI的图像 以下是我的完整源代码。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#000000"
android:orientation="vertical"
android:weightSum="6" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginTop="55dp"
    android:layout_weight="0.5"
    android:orientation="horizontal"
    android:weightSum="1" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingBottom="10dp"
        android:src="@drawable/agappbg" />
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:layout_weight="0.2"
    android:orientation="horizontal"
    android:weightSum="1" >

    <EditText
        android:id="@+id/txtMobileNo"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="45dp"
        android:layout_marginRight="45dp"
        android:layout_weight="1"
        android:background="#ffffff"
        android:gravity="left"
        android:hint="@string/MobileNo"
        android:singleLine="true" />
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.2"
    android:orientation="horizontal"
    android:weightSum="1" >

    <EditText
        android:id="@+id/txtPinNo"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="45dp"
        android:layout_marginRight="45dp"
        android:layout_weight="1"
        android:background="#ffffff"
        android:gravity="left"
        android:hint="@string/PinNo"
        android:inputType="textPassword"
        android:singleLine="true" />
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.1"
    android:orientation="horizontal"
    android:weightSum="1" >

    <Spinner
        android:id="@+id/lgnspinner"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="-17dp"
        android:layout_marginLeft="45dp"
        android:layout_marginRight="45dp"
        android:layout_marginTop="-15dp"
        android:layout_weight="1"
        android:paddingBottom="12dp"
        android:paddingTop="12dp"
        android:prompt="@string/network_prompt" />
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:layout_weight="0"
    android:orientation="horizontal"
    android:weightSum="4" >

    <Button
        android:id="@+id/btnLogin"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="45dp"
        android:layout_weight="1"
        android:background="@drawable/curvedplanebutton_small"
        android:text="Login"
        android:textColor="@drawable/button_text_color" />
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

实际上你的代码是正确的。看起来它与EditText框的大小不同,因为你在微调器中使用了默认背景。

如果您更改了背景颜色或图像

android:background="@android:color/darker_gray"

您可以更改其背景图片

android:background="@drawable/spinnerDropDownBackground" 

并确保图像为9路径,以便它不会在大屏幕中出现

How to create 9 patch for spinner ?

你会发现你的代码是正确的。

如果您想使用默认背景,则必须更改代码

android:layout_marginRight="40dp"
android:layout_marginLeft="40dp" 

希望这会有所帮助

答案 1 :(得分:0)

这不是你的错,Spinner的默认背景有这种形象(围绕它的透明填充)。您可以通过在android:background="#ffffff"上设置Spinner来看待自己,这样做会从Spinner方面移除填充,您的问题将会解决,但您将丢失Spinner箭头。我建议您为drawable创建自己的Spinner(因为您正在更改其他View的背景),否则默认背景对于不同的操作系统版本会有所不同,您的实现似乎会中断。

此外,您正在使用这么多LinerLayout来进行这种简单的布局。考虑一下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#000000"
android:orientation="vertical"
android:weightSum="100" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_gravity="center_horizontal"
    android:layout_weight="30"
    android:paddingBottom="10dp"
    android:src="@drawable/ic_launcher" />

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="70"
    android:orientation="vertical"
    android:padding="16dp" >

    <EditText
        android:id="@+id/txtMobileNo"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="fill_parent"
        android:layout_height="40dp"
        android:layout_marginBottom="4dp"
        android:background="#ffffff"
        android:gravity="center_vertical"
        android:hint="MobileNo"
        android:padding="4dp"
        android:singleLine="true" />

    <EditText
        android:id="@+id/txtPinNo"
        android:layout_width="fill_parent"
        android:layout_height="40dp"
        android:layout_marginBottom="4dp"
        android:background="#ffffff"
        android:gravity="center_vertical"
        android:hint="Pin no"
        android:inputType="textPassword"
        android:padding="4dp"
        android:singleLine="true" />

    <Spinner
        android:id="@+id/lgnspinner"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="4dp"
        android:background="#ffffff" />

    <Button
        android:id="@+id/btnLogin"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:text="Login" />
</LinearLayout>

</LinearLayout>

再次调整您的引用,以防您复制粘贴我的代码。