layout_weight让我疯狂。我已经在StackOverflow和网络上阅读了类似问题的 reams ,但没有解决我的问题。我已经复制了多个我遇到但仍然没有喜悦的样本。我的布局(下面)非常简单
我尝试了按钮宽度的多个值(fill_parent,wrap_content,0dp等)。还尝试在LinearLayout中明确设置weightSum = 5.0 - 所有宽度相同(坏)的结果。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
>
<!-- TRIED BUTTON WIDTHS OF fill_parent, wrap_content, 0dp - SAME RESULT! -->
<!-- TRIED weightSum=5.0 FOR LinearLayout - SAME RESUT! -->
<Button
android:text="North"
android:id="@+id/up"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.0"
/>
<Button
android:text="South"
android:id="@+id/down"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.0"
/>
<Button
android:text="West"
android:id="@+id/left"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.0"
/>
<Button
android:text="East"
android:id="@+id/right"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.0"
/>
<Button
android:text="Exit"
android:id="@+id/done"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.0"
/>
</LinearLayout>
不知道它是否相关,但是在我的手机从KitKat到Lollipop获得OTA更新后不久出现了这个问题。另外,我在自定义Dialog而不是Activity中使用此布局,如下所示。
Dlg = new Dialog( Ctx );
Dlg.setContentView(R.layout.nudge );
Dlg.setTitle( "Direction" );
Dlg.setCancelable(false);
下面的第一张图片显示了问题:按钮不会填充布局和文字换行。
奇怪的是,Eclipse图形布局(第二张图片)中的布局看起来很好。
我在这个问题上花了好几天没有快乐。 请帮忙!
答案 0 :(得分:0)
我明白了!问题是(显然)窗口管理器覆盖了根LinearLayout中的fill_parent。为了阻止这种情况,我必须做以下事情:
// CREATE DIALOG
Dlg = new Dialog( Ctx );
Dlg.setContentView(R.layout.mydialog );
...
// SET DLG TO FULL WIDTH
Window window = Dlg.getWindow();
WindowManager.LayoutParams wlp;
wlp = window.getAttributes();
wlp.width=WindowManager.LayoutParams.MATCH_PARENT;
window.setAttributes( wlp );
这不是100%的全宽,而是接近(我猜90%)这对我来说很好。
答案 1 :(得分:0)
你几乎成功了。试试吧: