无法显示微调器

时间:2016-03-03 11:17:33

标签: android spinner android-spinner

这是我在xml中的微调器

  <Spinner
     android:id="@+id/product_details_spinner"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignLeft="@+id/rl_3"
     android:layout_alignRight="@+id/rl_3"
     android:layout_below="@+id/rl_3"
     />

这是我的java代码

List<String > sizelist = new ArrayList<String >();
spinner = (Spinner) rootView.findViewById(R.id.product_details_spinner);


            sizelist.add("Select Size");
            sizelist.add("small");
            sizelist.add("medium");
            sizelist.add("large");

            ArrayAdapter<String > adapter = new ArrayAdapter<>(getActivity(),android.R.layout.simple_spinner_item,sizelist);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);


            spinner.setAdapter(adapter);

我不知道为什么我无法显示一个简单的微调器。我可以在设计中查看它,但是当我在设备上运行时,不会显示微调器。

请帮忙!

编辑:我尝试在xml中使用字符串数组,但我需要从java中提供数组,因为这将是动态的

<string-array name="items">
        <item>Item 1</item>
        <item>Item 2</item>
        <item>Item 3</item>
        <item>Item 4</item>
        <item>Item 5</item>
    </string-array>

2 个答案:

答案 0 :(得分:0)

你设置`android:layout_alignLeft =&#34; @ + id / rl_3&#34;      机器人:layout_alignRight =&#34; @ + ID / rl_3&#34;你设置它们所以它不起作用,你只使用一个 并且aslo做到了

            ArrayAdapter<String > adapter = new ArrayAdapter<String >(getActivity(),android.R.layout.simple_spinner_item,sizelist);

答案 1 :(得分:0)

在测试代码时我变得很傻,发生了什么事情当我在新Project中测试你的代码时,spinner在Navigation栏后面。

Spinner behind nav

只有在添加这些属性后才会显示它并且一切正常

<Spinner
    android:id="@+id/product_details_spinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"

    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="50dp" />

可能您面临同样的情况,请查看并确保您的Spinner在预览窗格中可见。