ViewPager を使用して 3 つのタブを実装しました。右側のタブ レイアウトには、テキスト編集ウィジェットが 1 つあり、ユーザーがクリックするとキーボードが表示されます。ユーザーが手動でキーボードを閉じず、中央または左のタブにスワイプしない場合、キーボードは画面に残ります。だから、私が必要としない他の2つのタブでキーボードを避ける方法.
編集:これが私のコードです。
class ViewPagerActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MyPagerAdapter adapter = new MyPagerAdapter();
ViewPager myPager = (ViewPager) findViewById(R.id.myfivepanelpager);
myPager.setAdapter(adapter);
myPager.setCurrentItem(1);
TitlePageIndicator titleIndicator = (TitlePageIndicator) findViewById(R.id.titles);
titleIndicator.setViewPager(myPager);
} }
2 番目のファイル: MyPagerAdapter.java
class MyPagerAdapter extends PagerAdapter implements OnClickListener,
OnLongClickListener, AdapterView.OnItemSelectedListener {
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
View view;
switch (position) {
case 0:
resId = R.layout.left;
view = inflater.inflate(resId, null);
break;
case 1:
resId = R.layout.main_c;
view = inflater.inflate(resId, null);
btn_no1 = (Button) view.findViewById(R.id.one);
btn_no1.setOnClickListener(this);
((ViewPager) collection).addView(view, 0);
return view;
case 2:
resId = R.layout.right;
view = inflater.inflate(resId, null);
main_spinner = (Spinner) view.findViewById(R.id.spinner1);
main_spinner.setOnItemSelectedListener(this);
from_spinner = (Spinner) view.findViewById(R.id.spinner2);
from_spinner.setOnItemSelectedListener(this);
to_spinner = (Spinner) view.findViewById(R.id.spinner3);
to_spinner.setOnItemSelectedListener(this);
swap = (ImageButton) view.findViewById(R.id.swap_spinner);
swap.setOnClickListener(this);
((ViewPager) collection).addView(view, 0);
return view;
}
view = inflater.inflate(resId, null);
((ViewPager) collection).addView(view, 0);
return view;
}
TitlePageIndicator は次のようになります。