按钮位置在运行时更改

时间:2012-09-18 08:14:14

标签: android button android-emulator

我正在为android创建一个应用程序,其中我面临一个奇怪的问题。问题是我将按钮放在屏幕中央,在文件的图形布局中以相同的方式显示,但是当我在模拟器中运行应用程序时,按钮位于更靠近右侧而不是居中。任何人都可以指出问题。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:panel="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#CCC"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <org.miscwidgets.widget.Panel
        android:id="@+id/mytopPanel"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="4dip"
        panel:animationDuration="1000"
        panel:closedHandle="@drawable/top_switcher_collapsed_background"
        panel:content="@+id/mypanelContent"
        panel:handle="@+id/mypanelHandle"
        panel:linearFlying="true"
        panel:openedHandle="@drawable/top_switcher_expanded_background"
        panel:position="top" >

        <Button
            android:id="@+id/mypanelHandle"
            android:layout_width="fill_parent"
            android:layout_height="33dip"
            android:paddingRight="50dp" />

        <LinearLayout
            android:id="@+id/mypanelContent"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <EditText
                android:id="@+id/editTextUserName"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_margin="3dp"
                android:layout_marginTop="6dp"
                android:hint="@string/editUserName" >
            </EditText>

            <EditText
                android:id="@+id/editTextPassword"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_margin="3dp"
                android:hint="@string/editUserPwd" >
            </EditText>

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="#323299"
                android:gravity="center"
                android:padding="4dip"
                android:text="@string/drpDwnTxt"
                android:textColor="#eee"
                android:textSize="16dip"
                android:textStyle="bold" />
        </LinearLayout>
    </org.miscwidgets.widget.Panel>

    <EditText
        android:id="@+id/editTextNumber"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="3dp"
        android:layout_marginTop="6dp"
        android:hint="@string/editNumber" >
    </EditText>

    <EditText
        android:id="@+id/editTextMessage"
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:layout_margin="3dp"
        android:hint="@string/editPwd" >
    </EditText>

    <Spinner
        android:id="@+id/spinnerGateway"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:drawSelectorOnTop="true"
        android:entries="@array/spinnerList"
        android:prompt="@string/spinnerPrompt" />

    <Button
        android:id="@+id/btnSend"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="3dp"
        android:onClick="save"
        android:text="@string/StrbtnSend" >
    </Button>
</LinearLayout>

</FrameLayout>

enter image description here

3 个答案:

答案 0 :(得分:0)

请尝试使用此代码进行更改

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:panel="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#CCC"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <org.miscwidgets.widget.Panel
        android:id="@+id/mytopPanel"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="4dip"
        panel:animationDuration="1000"
        panel:closedHandle="@drawable/top_switcher_collapsed_background"
        panel:content="@+id/mypanelContent"
        panel:handle="@+id/mypanelHandle"
        panel:linearFlying="true"
        panel:openedHandle="@drawable/top_switcher_expanded_background"
        panel:position="top" >

        <Button
            android:id="@+id/mypanelHandle"
            android:layout_width="fill_parent"
            android:layout_height="33dip"
            android:gravity="center" />

        <LinearLayout
            android:id="@+id/mypanelContent"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <EditText
                android:id="@+id/editTextUserName"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_margin="3dp"
                android:layout_marginTop="6dp"
                android:hint="@string/editUserName" >
            </EditText>

            <EditText
                android:id="@+id/editTextPassword"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_margin="3dp"
                android:hint="@string/editUserPwd" >
            </EditText>

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="#323299"
                android:gravity="center"
                android:padding="4dip"
                android:text="@string/drpDwnTxt"
                android:textColor="#eee"
                android:textSize="16dip"
                android:textStyle="bold" />
        </LinearLayout>
    </org.miscwidgets.widget.Panel>

    <EditText
        android:id="@+id/editTextNumber"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="3dp"
        android:layout_marginTop="6dp"
        android:hint="@string/editNumber" >
    </EditText>

    <EditText
        android:id="@+id/editTextMessage"
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:layout_margin="3dp"
        android:hint="@string/editPwd" >
    </EditText>

    <Spinner
        android:id="@+id/spinnerGateway"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:drawSelectorOnTop="true"
        android:entries="@array/spinnerList"
        android:prompt="@string/spinnerPrompt" />

    <Button
        android:id="@+id/btnSend"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="3dp"
        android:onClick="save"
        android:text="@string/StrbtnSend" >
    </Button>
</LinearLayout>

</FrameLayout>

答案 1 :(得分:0)

这个新的布局文件已经完成了我的工作,只是一个小错误造成了麻烦。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:panel="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#CCC"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <org.miscwidgets.widget.Panel
        android:id="@+id/mytopPanel"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        panel:animationDuration="1000"
        panel:closedHandle="@drawable/top_switcher_collapsed_background"
        panel:content="@+id/mypanelContent"
        panel:handle="@+id/mypanelHandle"
        panel:linearFlying="true"
        panel:openedHandle="@drawable/top_switcher_expanded_background"
        panel:position="top" >

        <Button
            android:id="@+id/mypanelHandle"
            android:layout_width="wrap_content"
            android:layout_height="33dip"
            android:layout_gravity="center_horizontal" />

        <LinearLayout
            android:id="@+id/mypanelContent"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <EditText
                android:id="@+id/editTextUserName"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_margin="3dp"
                android:layout_marginTop="6dp"
                android:hint="@string/editUserName" >
            </EditText>

            <EditText
                android:id="@+id/editTextPassword"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_margin="3dp"
                android:hint="@string/editUserPwd" >
            </EditText>

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="#323299"
                android:gravity="center"
                android:padding="4dip"
                android:text="@string/drpDwnTxt"
                android:textColor="#eee"
                android:textSize="16dip"
                android:textStyle="bold" />
        </LinearLayout>
    </org.miscwidgets.widget.Panel>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <AutoCompleteTextView
            android:id="@+id/mmWhoNo"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_marginTop="10dp"
            android:layout_toLeftOf="@+id/btnContact"
            android:hint="To: Type to search"
            android:textSize="13sp" />

        <Button
            android:id="@+id/btnContact"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_alignParentRight="true"
            android:layout_marginTop="10dp"
            android:background="@drawable/contacts_icon"
            android:textSize="18dp" >
        </Button>
    </RelativeLayout>

    <EditText
        android:id="@+id/editTextMessage"
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:layout_margin="3dp"
        android:hint="@string/editPwd" >
    </EditText>

    <Spinner
        android:id="@+id/spinnerGateway"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:drawSelectorOnTop="true"
        android:entries="@array/spinnerList"
        android:prompt="@string/spinnerPrompt" />

    <Button
        android:id="@+id/btnSend"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="3dp"
        android:text="@string/StrbtnSend" >
    </Button>

    <TextView
        android:id="@+id/txtAuthor"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Designed By - Tapan Desai" />
</LinearLayout>

</FrameLayout>

答案 2 :(得分:-1)

从按钮xml中删除填充并将重力设置为居中

layout_gravity="center"//can also set horizontal or vertical

并确保您没有在访问它的java类中设置margin或padding。