在android2.2机顶盒上做了一个应用,从主界面跳转到另外一个界面,第2个界面为半透明状态,使用空鼠点击第2个界面上的edittext弹出软键盘,会将主界面的布局向上压缩,但是不使用空鼠,正常焦点切换,点击就不会出现这种现象。在线求解!!!!!
下面是我的manifest :
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="3"
android:versionName="1.1.2" > <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="9" /> <application
android:name=".application.DsmApplication"
android:icon="@drawable/dsm_icon_2"
android:label="@string/app_name_cn"
android:sharedUserId="android.uid.system"
android:theme="@style/AppTheme" > <activity
android:name=".activity.HomeActivity"
android:launchMode="singleTop"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateHidden" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity> <activity
android:name=".activity.SearchActivity"
android:theme="@style/translucent"
android:windowSoftInputMode="adjustPan" />
</application>
</manifest>界面布局文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/search_mainbg"
android:orientation="vertical" > <ImageView
android:id="@+id/searchbackground"
android:layout_width="fill_parent"
android:layout_height="fill_parent" /> <EditText
android:id="@+id/inputedit"
android:layout_width="871px"
android:layout_height="66px"
android:layout_marginLeft="205px"
android:layout_marginTop="63px"
android:hint="@string/search_hint"
android:paddingLeft="20px"
android:singleLine="true"
android:textSize="24px" >
</EditText> <ListView
android:id="@+id/outputlist"
android:layout_width="860px"
android:layout_height="193px"
android:layout_below="@id/inputedit"
android:layout_marginLeft="211px"
android:layout_marginTop="-10px"
android:background="@drawable/search_listbg"
android:divider="@color/transparent"
android:dividerHeight="-4px"
android:fadingEdge="none"
android:listSelector="@color/transparent"
android:fadeScrollbars="false" >
</ListView> <ImageView
android:id="@+id/emptyview"
android:layout_width="220px"
android:layout_height="63px"
android:layout_below="@id/inputedit"
android:layout_marginLeft="514px"
android:layout_marginTop="58px"
android:src="@drawable/search_empty" >
</ImageView></RelativeLayout>onCreate方法:
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
DsmApplication.getInstance().addActivity(this);
{ //设置背景(直接使用XML描述background,显示的图片会有色阶)
getWindow().setFormat(PixelFormat.TRANSLUCENT);
Resources res = getResources();
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.search_mainbg, opts);
BitmapDrawable bmpDraw = new BitmapDrawable(bmp);
ImageView imgView = (ImageView)findViewById(R.id.searchbackground);
imgView.setImageBitmap(bmp);
}
/* *设置搜索Activity的位置,要靠上,否则软键盘出来时,会被顶上去*/
android.view.WindowManager.LayoutParams p = getWindow().getAttributes(); //获取对话框当前的参数值
getWindow().setGravity(Gravity.TOP); //设置靠顶对齐
p.y = 62; //设置离顶部62像素
getWindow().setAttributes(p); //设置生效
/*初始化输入框*/
inputText = (EditText)findViewById(R.id.inputedit);
inputText.addTextChangedListener(searchTextWatcher);
inputText.setOnFocusChangeListener(viewFocuschange);
Drawable drawable = getResources().getDrawable(R.drawable.searchicon); // 设置搜索框里的icon
drawable.setBounds(new Rect(-5, 0, 24, 28));
inputText.setCompoundDrawables(drawable, null, null, null);
inputText.requestFocus();
inputText.setOnEditorActionListener(new EditText.OnEditorActionListener()
{
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
{
if (actionId == EditorInfo.IME_ACTION_DONE)
{
InputMethodManager imm =
(InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
return true;
}
return false;
}
});
/*初始化输出框*/
mSearchResultAdpter = new SearchResultAdpter(this);
outList = (ListView)findViewById(R.id.outputlist);
outList.setAdapter(mSearchResultAdpter);
outList.setOnItemClickListener(listItemSelected);
outList.setOnItemSelectedListener(listOnitemSelected);
outList.setOnFocusChangeListener(viewFocuschange);
outList.setVisibility(View.INVISIBLE);
/*搜索结果空*/
emptyView = (ImageView)findViewById(R.id.emptyview);
emptyView.setVisibility(View.INVISIBLE);
/**
* 输入法
* 需要时间缓冲,否则软键盘显示不出来。
*/
Timer timer = new Timer();
timer.schedule(new TimerTask()
{
@Override
public void run()
{
imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
}
}, 300);
}android空鼠软键盘
下面是我的manifest :
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="3"
android:versionName="1.1.2" > <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="9" /> <application
android:name=".application.DsmApplication"
android:icon="@drawable/dsm_icon_2"
android:label="@string/app_name_cn"
android:sharedUserId="android.uid.system"
android:theme="@style/AppTheme" > <activity
android:name=".activity.HomeActivity"
android:launchMode="singleTop"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateHidden" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity> <activity
android:name=".activity.SearchActivity"
android:theme="@style/translucent"
android:windowSoftInputMode="adjustPan" />
</application>
</manifest>界面布局文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/search_mainbg"
android:orientation="vertical" > <ImageView
android:id="@+id/searchbackground"
android:layout_width="fill_parent"
android:layout_height="fill_parent" /> <EditText
android:id="@+id/inputedit"
android:layout_width="871px"
android:layout_height="66px"
android:layout_marginLeft="205px"
android:layout_marginTop="63px"
android:hint="@string/search_hint"
android:paddingLeft="20px"
android:singleLine="true"
android:textSize="24px" >
</EditText> <ListView
android:id="@+id/outputlist"
android:layout_width="860px"
android:layout_height="193px"
android:layout_below="@id/inputedit"
android:layout_marginLeft="211px"
android:layout_marginTop="-10px"
android:background="@drawable/search_listbg"
android:divider="@color/transparent"
android:dividerHeight="-4px"
android:fadingEdge="none"
android:listSelector="@color/transparent"
android:fadeScrollbars="false" >
</ListView> <ImageView
android:id="@+id/emptyview"
android:layout_width="220px"
android:layout_height="63px"
android:layout_below="@id/inputedit"
android:layout_marginLeft="514px"
android:layout_marginTop="58px"
android:src="@drawable/search_empty" >
</ImageView></RelativeLayout>onCreate方法:
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
DsmApplication.getInstance().addActivity(this);
{ //设置背景(直接使用XML描述background,显示的图片会有色阶)
getWindow().setFormat(PixelFormat.TRANSLUCENT);
Resources res = getResources();
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.search_mainbg, opts);
BitmapDrawable bmpDraw = new BitmapDrawable(bmp);
ImageView imgView = (ImageView)findViewById(R.id.searchbackground);
imgView.setImageBitmap(bmp);
}
/* *设置搜索Activity的位置,要靠上,否则软键盘出来时,会被顶上去*/
android.view.WindowManager.LayoutParams p = getWindow().getAttributes(); //获取对话框当前的参数值
getWindow().setGravity(Gravity.TOP); //设置靠顶对齐
p.y = 62; //设置离顶部62像素
getWindow().setAttributes(p); //设置生效
/*初始化输入框*/
inputText = (EditText)findViewById(R.id.inputedit);
inputText.addTextChangedListener(searchTextWatcher);
inputText.setOnFocusChangeListener(viewFocuschange);
Drawable drawable = getResources().getDrawable(R.drawable.searchicon); // 设置搜索框里的icon
drawable.setBounds(new Rect(-5, 0, 24, 28));
inputText.setCompoundDrawables(drawable, null, null, null);
inputText.requestFocus();
inputText.setOnEditorActionListener(new EditText.OnEditorActionListener()
{
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
{
if (actionId == EditorInfo.IME_ACTION_DONE)
{
InputMethodManager imm =
(InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
return true;
}
return false;
}
});
/*初始化输出框*/
mSearchResultAdpter = new SearchResultAdpter(this);
outList = (ListView)findViewById(R.id.outputlist);
outList.setAdapter(mSearchResultAdpter);
outList.setOnItemClickListener(listItemSelected);
outList.setOnItemSelectedListener(listOnitemSelected);
outList.setOnFocusChangeListener(viewFocuschange);
outList.setVisibility(View.INVISIBLE);
/*搜索结果空*/
emptyView = (ImageView)findViewById(R.id.emptyview);
emptyView.setVisibility(View.INVISIBLE);
/**
* 输入法
* 需要时间缓冲,否则软键盘显示不出来。
*/
Timer timer = new Timer();
timer.schedule(new TimerTask()
{
@Override
public void run()
{
imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
}
}, 300);
}android空鼠软键盘
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货