さて、私はかなり奇妙な問題に遭遇しています。私はこれを正しく行っていると思いますが、線形レイアウトのいずれかで可視性を GONE に設定しようとすると、奇妙なことが起こります。
基本的に、私がやろうとしているのは、スピナー onItemSelected リスナーを使用して、どのレイアウトが表示されるかを判断することです。これは基本的に、RelativeLayout 内の scrollview 内の 1 つの linearlayout 内のテーブル行、スピナー、および 3 つの linearlayout です。その一部の最初の xml を次に示します。他の 2 つの線形レイアウトは表示されていません。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context=".Catbug" >
<ScrollView
android:id="@+id/scrollview1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:ignore="UselessParent" >
<LinearLayout
android:id="@+id/home_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#000000"
android:orientation="vertical" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center|center_horizontal|center_vertical" >
<TextView
android:id="@+id/textView0"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="left|center_vertical|fill_vertical|center_horizontal|center"
android:layout_weight="1"
android:text="@string/catbug_quotes"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="36sp" />
<ImageButton
android:id="@+id/catbugback"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:src="@drawable/backbuttonpress" android:contentDescription="@string/goback"/>
</TableRow>
<Spinner
android:id="@+id/catbugspinner"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
/>
<LinearLayout
android:id="@+id/catbug7_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
さて、問題の部分のコード側は次のとおりです。
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
final LinearLayout ep7 = (LinearLayout) findViewById(R.id.catbug7_layout);
final LinearLayout ep10 = (LinearLayout) findViewById(R.id.catbug10_layout);
final LinearLayout ep11 = (LinearLayout) findViewById(R.id.catbug11_layout);
int position = spinner.getSelectedItemPosition();
switch(position){
case 0:
ep7.setVisibility(View.VISIBLE);
ep10.setVisibility(View.VISIBLE);
ep11.setVisibility(View.VISIBLE);
break;
case 1:
ep7.setVisibility(View.VISIBLE);
ep10.setVisibility(View.GONE);
ep11.setVisibility(View.GONE);
break;
case 2:
ep7.setVisibility(View.GONE);
ep10.setVisibility(View.VISIBLE);
ep11.setVisibility(View.GONE);
break;
case 3:
ep7.setVisibility(View.GONE);
ep10.setVisibility(View.GONE);
ep11.setVisibility(View.VISIBLE);
break;
}
}
一般的に、それは機能します。特定のスピナーの選択に必要のないレイアウトは、選択後に消えて画面の上部に表示されます。ただし、スクロールを開始するまで実際には消えません.5つのボタンしか表示されないため、最初のlinearlayoutはスクロールする必要がないため、問題が発生します。ただし、実際にスクロールするつもりだったように指をスワイプすると、非アクティブな (破棄され、まだ表示されている) linearlayout2 が突然消えます。
私が間違っていることについてのアイデアはありますか?それは実際に機能するので、私を悩ませています。それは、その奇妙な「ゴースト」を持つ美学です。