在我的应用程序中,我有一个表单,用户输入他/她的地址。我有几个EditTexts来输入城市,州和邮编的信息。我有一个字段国家的线性布局,由Country Picker取代。显示下拉菜单,但拉伸线性布局会使窗体看起来很糟糕。我一直无法让它看起来很好。有时,如果我进行更改,下拉菜单不会显示。请帮助我,因为我是构建Android应用程序的初学者。调整布局文件,使表单看起来更好
这里是布局的XML文件的一部分:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/Rlayout_recipient"
android:layout_width="match_parent" android:layout_height="match_parent"
android:layout_below="@id/top_bar_view" android:background="@drawable/bg">
<EditText android:id="@+id/edt_rec_addr1"
android:layout_width="400dp" android:layout_height="wrap_content"
android:layout_alignLeft="@+id/edt_rec_name"
android:layout_alignRight="@+id/edt_rec_name" android:layout_below="@+id/edt_rec_name"
android:layout_marginTop="15dp" android:background="@drawable/border_email"
android:ems="10" android:hint="@string/addr1_hint" android:inputType="text"
android:padding="6dp" android:textColor="#FFFFFF"
android:textColorHint="#FFFFFF" />
<EditText android:id="@+id/edt_rec_name"
android:layout_width="400dp" android:layout_height="wrap_content"
android:layout_alignParentTop="true" android:layout_centerHorizontal="true"
android:layout_marginTop="22dp" android:background="@drawable/border_email"
android:ems="10" android:hint="@string/name_hint" android:inputType="text"
android:padding="6dp" android:textColor="#FFFFFF"
android:textColorHint="#FFFFFF" />
<LinearLayout android:id="@+id/addr_layout"
android:layout_width="400dp" android:layout_height="wrap_content"
android:layout_alignLeft="@+id/edt_rec_addr2"
android:layout_alignParentBottom="true" android:layout_marginBottom="16dp"
android:background="@drawable/border_email">
<EditText android:id="@+id/edt_rec_city"
android:layout_width="70dp" android:layout_height="wrap_content"
android:ems="10" android:hint="@string/city_hint" android:inputType="text"
android:padding="6dp" android:textColor="#FFFFFF"
android:textColorHint="#FFFFFF" />
<EditText android:id="@+id/edt_rec_state"
android:layout_width="70dp" android:layout_height="wrap_content"
android:ems="10" android:hint="@string/state_hint"
android:inputType="text" android:padding="6dp" android:textColor="#FFFFFF"
android:textColorHint="#FFFFFF" />
<EditText android:id="@+id/edt_rec_postcode"
android:layout_width="105dp" android:layout_height="wrap_content"
android:ems="10" android:hint="@string/postcode_hint"
android:inputType="number" android:padding="6dp" android:textColor="#FFFFFF"
android:textColorHint="#FFFFFF" />
<LinearLayout android:id="@+id/country_layout"
android:layout_width="150dp" android:layout_height="wrap_content"
android:layout_marginRight="20dp" android:orientation="vertical"
android:weightSum="1" />
</LinearLayout>
<EditText android:id="@+id/edt_rec_addr2"
android:layout_width="400dp" android:layout_height="wrap_content"
android:layout_above="@+id/addr_layout" android:layout_alignLeft="@+id/edt_rec_addr1"
android:layout_marginBottom="17dp" android:background="@drawable/border_email"
android:ems="10" android:hint="@string/addr2_hint" android:inputType="text"
android:padding="6dp" android:textColor="#FFFFFF"
android:textColorHint="#FFFFFF" />
</RelativeLayout>
这是该活动的Java代码:
public class RecipientAddressActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recipient_address);
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
CountryPicker picker = new CountryPicker();
picker.setListener(new CountryPickerListener() {
@Override
public void onSelectCountry(String name, String code) {
Toast.makeText(
RecipientAddressActivity.this,
"Country Name: " + name + " - Code: " + code
+ " - Currency: "
+ CountryPicker.getCurrencyCode(code),
Toast.LENGTH_SHORT).show();
}
});
transaction.replace(R.id.country_layout, picker);
transaction.commit();
}
这里是截图的链接它的外观
,它应该是怎样看:
请,请帮助我。
使用线性布局,您不能在上图中显示android:layout_alignLeft,layout_alignRight,below,above等元素。 – user2688158
您可以将它们移除,因为它们在线性布局中不起作用。尝试使用重量,重力或layout_gravity来调整组件。 –
感谢您的回复。使用线性布局不会有帮助,它是一样的。我想知道如果我可以让国家成为EditText,并且在它的触摸事件中我打开了国家选择器。如果您对此有任何建议,请告知我。谢谢。 – user2688158