4

我正在使用 Actionbarsherlock 并希望使用自定义操作栏布局,但仍需要导航列表。因此,我包含了一个 IcsSpinner 小部件。但是,宽度总是与最大的项目一样大,这是不希望的。我把它从操作栏里拿出来调试,仍然得到相同的结果:

短文本

在此处输入图像描述

片段代码

public class TestFragment extends SherlockFragment {
private final String[] testStrings = {"Short","Not so long text"};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view=inflater.inflate(R.layout.test_layout, container, false);
    IcsSpinner spinner = (IcsSpinner)view.findViewById(R.id.test_spinner);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
             R.layout.spiner_test_row, R.id.spinner_text, testStrings);
    spinner.setAdapter(adapter);
    return(view);
    }
}

test_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<com.actionbarsherlock.internal.widget.IcsSpinner
    android:id="@+id/test_spinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
</LinearLayout>

R.layout.spinner_test_row

<?xml version="1.0" encoding="utf-8"?>
<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/spinner_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="16sp" />

更改为标准 Spinner(在姜饼模拟器上)可以正常工作:

在此处输入图像描述

在此处输入图像描述

有什么建议么?

4

1 回答 1

-1

这似乎是 ActionBarSherlock 中 IcsSpinner 组件的默认行为,即使在我的 ICS 设备上运行 Honeycomb+ 版本的 Android 时也是如此 - 例如 Square Wallet。

Jake 建议不要使用 IcsSpinner 组件,但没有它就没有简单的方法来使用自定义操作栏布局和维护导航列表 UI。除非 Jake 可以建议和替代,否则我将继续使用它,确保在他伟大的库的未来版本中进行全面测试。

于 2012-10-11T02:29:24.087 回答