当我第一次启动我的应用程序时,所有内容都显示并正常工作但当我关闭并重新打开它时,在我的相对布局顶部彼此相邻的微调器和按钮只是它们通常高度的一半,而微调器是无法使用。如果我点击它没有任何下降(但按钮按常规工作)。微调器下方的其他元素,但照常显示。
我花了半天时间用谷歌搜索并使用应用程序代码和布局XML,几乎没有任何进展。
任何人都知道造成这种情况的原因是什么?它只发生在应用程序的后续运行中。
这是布局XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Spinner
android:id="@+id/namespinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/button1" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/namespinner"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/namespinner"
android:onClick="onEditButtonPressed"
android:text="@string/dob_edit" />
<TextView
android:id="@+id/secondsDisplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="36dp"
android:text="@string/seconds"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="48sp" />
<TextView
android:id="@+id/minutesDisplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/secondsDisplay"
android:layout_centerHorizontal="true"
android:layout_marginBottom="28dp"
android:text="@string/minutes"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="48sp" />
<TextView
android:id="@+id/hoursDisplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_above="@+id/minutesDisplay"
android:layout_marginBottom="27dp"
android:text="@string/hours"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="48sp" />
<TextView
android:id="@+id/hourstext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/hoursDisplay"
android:layout_alignBottom="@+id/hoursDisplay"
android:layout_alignLeft="@+id/daystext"
android:text="@string/hours_lable"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/dayDisplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/hoursDisplay"
android:layout_centerHorizontal="true"
android:layout_marginBottom="22dp"
android:text="@string/days"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="48sp" />
<TextView
android:id="@+id/daystext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/dayDisplay"
android:layout_toRightOf="@+id/namespinner"
android:text="@string/days_lable"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/minutesText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/minutesDisplay"
android:layout_alignBottom="@+id/minutesDisplay"
android:layout_alignLeft="@+id/hourstext"
android:text="@string/minutes_lable"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/secondstext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/secondsDisplay"
android:layout_alignBottom="@+id/secondsDisplay"
android:layout_alignLeft="@+id/minutesText"
android:text="@string/seconds_lable"
android:textAppearance="?android:attr/textAppearanceSmall" />
这应该是主要活动的相关部分:
public class MainActivity extends Activity {
static Spinner nameSpinner;
ArrayAdapter nameAdapter;
static ArrayList nameList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onResume() {
super.onResume();
// get spinner and init array if needed
if (nameList == null) {
nameSpinner = (Spinner) findViewById(R.id.namespinner);
nameList = new ArrayList();
nameList.add("( Add )");
}
// populate spinner
nameAdapter = new ArrayAdapter(this,
android.R.layout.simple_spinner_dropdown_item, nameList);
nameSpinner.setAdapter(nameAdapter);
// listen for events/selections on the spinner
nameSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView parentView,
View selectedItemView, int position, long id) {
// read state
}
}
@Override
public void onNothingSelected(AdapterView parentView) {
// do I want to do anything here?
}
});
}
}
编辑清理代码显示并添加类def。和类变量。
答案 0 :(得分:0)
您必须在oncreate方法中插入onresume方法中编写的代码!
答案 1 :(得分:0)
在一个if语句中设置微调器并没有与设置微调器有任何关系是导致问题的原因。通过改变这个:
if (nameList == null) {
nameSpinner = (Spinner) findViewById(R.id.namespinner);
nameList = new ArrayList();
nameList.add("( Add )");
}
到
nameSpinner = (Spinner) findViewById(R.id.namespinner);
if (nameList == null) {
nameList = new ArrayList();
nameList.add("( Add )");
}
让它排序。
一个美好的夜晚睡眠和新鲜的眼睛所需的一切。 :P