如果我在水平LinearLayout或表格行中添加微调器,例如:
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
</EditText>
<Spinner
android:id="@+id/spinner1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
旋转器漂浮下来。它浮在Android 2.2,Android 2.3和Android 3.2上,但它在Android 4.0中运行良好,他们修复了它。但有没有办法让它与其他视图一致,如android 2.3上的EditText。
通过浮动我的意思是:
***********************
* if EditText is here * ************************
*********************** * Spinner will be here *
************************
答案 0 :(得分:3)
旧帖子,但它可能会有所帮助:
将baselineAligned设置为true是不必要的,因为它是默认值(在此解释: http://developer.android.com/reference/android/widget/LinearLayout.html#attr_android:baselinealigned)
我通过将高度硬编码到textview和spinner,并将baselineAligned设置为FALSE来修复它。
答案 1 :(得分:3)
Spinner小于EditText,因此可以将两者对齐以将android:layout_height =“match_parent”添加到Spinner,并使用wrap_content保留LinearLayout和EditText。
答案 2 :(得分:2)
之前我遇到了同样的麻烦,在尝试修改我的xml后我找到了答案,这是我的xml代码:
printMyMyGADT
只需将<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/linearlayout1"
android:orientation="horizontal"
android:gravity="bottom">
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_layout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="50">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:textSize="20dp"
android:hint="Duration"
android:layout_gravity="left"
android:gravity="center"
/>
</android.support.design.widget.TextInputLayout>
<Spinner
android:id="@+id/spinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="50"
/>
的{{1}}设置为gravity
即可解决您的问题。
答案 3 :(得分:1)
您应该将以下内容添加到您的editText:
android:layout_gravity="center_vertical"
答案 4 :(得分:0)
在线性布局中,方向是“水平”。意义元素并排放置。然而,你的EditText和Spinner都有android:layout_width =“fill_parent”。 所以你想放置你的EditText&amp; Spinner并排,但你也想要它们fill_parent ......
如果你遇到这些矛盾的情况,你会怎么做?
显然,这是一个矛盾,不同版本的android为这些属性赋予了不同的优先级。
我建议将EditText和Spinner属性更改为:
<EditText
...
android:layout_width="0dp"
... />
<Spinner
...
android:layout_width="0dp"
... />
并将其添加到您的LinearLayout:
<LinearLayout
android:baselineAligned="true"
... />
答案 5 :(得分:0)
将android:baselineAligned =“false”添加到LinearLayout以查看algn视图。 这适用于我的项目:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:orientation="horizontal" >
<EditText
android:id="@+id/text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<Spinner
android:id="@+id/spinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
答案 6 :(得分:0)
我找到了以下解决方案:
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"/>
<Spinner
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>