ListPopupWindowを使用して検索フィールドを構築しています。 特定のデバイスでは、ListPopupWindowはスクロールするとその位置を変更します。 (これは、先頭にジャンプ):スクロール前ListPopupWindowがスクロールすると特定のデバイス上にジャンプする
:
スクロールした後:
を私はネクサス6Pでこれをテストしました。 他のデバイスでは正常に動作しますが、スクロールすると初期位置は変更されません。これはSamsung Galaxy A5で撮影されました。
ここでは、コードです:
Activiyt:
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
EditText itemName;
ListPopupWindow listPopupWindow;
String[] items = {"Item1", "Item2", "Item3", "Item4",
"Item5", "Item6", "Item7", "Item8", "Item9", "Item10"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
itemName = (EditText) findViewById(
R.id.item_name);
listPopupWindow = new ListPopupWindow(
MainActivity.this);
listPopupWindow.setAdapter(new ArrayAdapter<>(
MainActivity.this,
R.layout.list_item, items));
listPopupWindow.setAnchorView(itemName);
listPopupWindow.setWidth(ListPopupWindow.MATCH_PARENT);
listPopupWindow.setHeight(ListPopupWindow.WRAP_CONTENT);
listPopupWindow.setModal(true);
listPopupWindow.setOnItemClickListener(MainActivity.this);
itemName.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
listPopupWindow.show();
}
});
}
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
itemName.setText(items[position]);
listPopupWindow.dismiss();
}
}
活動のレイアウトファイル:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/item_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter item name"
android:textSize="26sp"/>
</LinearLayout>
とリスト項目のレイアウト:
は<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="6dp"
android:textSize="50sp"
android:textStyle="bold"/>
これを解決する方法はありますか?代わりにこれを行うの
:あなたは、単にビューに
Runnable
を投稿することができます。 –あなたは何を意味するのか分かるようにいくつかのコードを提供できますか? :) – buellas
検索は1つのデバイスにのみ表示され、他のデバイスには表示されません。 –