0

我正在尝试在运行 Honeycomb 3.2.2 的 Xyboard 10.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();
    }
  });
}

具体来说,我在中间添加了三行启用双向淡入淡出,并设置了任意淡入淡出长度。我还验证了从 get-fade-strength 吸气剂返回的有效值和预期值,因此强度吸气剂返回零不是问题。

请注意,在我们的实际应用程序中,我们必须以编程方式启用此功能,这就是我没有在 XML 中配置此行为的原因。

除了 Xyboard,我已经验证了这个测试类和淡入淡出效果在我尝试过的所有其他设备上都能成功运行,包括:

  • Galaxy Tab 8.9(蜂窝 3.1)
  • Galaxy Nexus (ICS 4.0)
  • 模拟器(Honeycomb 3.2)
4

1 回答 1

4

不确定您是否已经解决了这个问题,但我遇到了类似的问题,只是决定深入研究 View.java 类。

在您使用以下方法启用衰落边缘之前:

android:fadingEdge="vertical"

现在你使用:

android:requiresFadingEdge="vertical"
于 2012-06-28T22:14:56.543 回答