Honeycomb3.2.2を実行しているXyboard10.1(Xoom 2)のリストで「fadingEdge」効果を機能させようとしています。問題を実証する方法として、ここで説明する基本的なandroidリストビューチュートリアルを使用しています。
http://developer.android.com/resources/tutorials/views/hello-listview.html
変更されたコードは次のようになります。
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] countries = getResources().getStringArray(R.array.countries_array);
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, countries));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setVerticalFadingEdgeEnabled( true );
lv.setHorizontalFadingEdgeEnabled( true );
lv.setFadingEdgeLength( 30 );
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
}
});
}
具体的には、中央に両方向のフェードを可能にする3本の線を追加し、任意のフェード長を設定しました。また、有効で期待される値がget-fade-strengthゲッターから戻ってくることを確認したので、strengthゲッターがゼロを返すことは問題ではありません。
実際のアプリケーションでは、この機能をプログラムで有効にする必要があることに注意してください。そのため、この動作をXMLで構成していません。
Xyboardを除いて、このテストクラスとフェージングエッジ効果が、次のような他のすべてのデバイスで正常に機能することを確認しました。
- Galaxy Tab 8.9(Honeycomb 3.1)
- Galaxy Nexus(ICS 4.0)
- エミュレーター(Honeycomb 3.2)