所以我有一个GridLayout - 它正在使用权重来正确分配自己。问题是它在某些设备上无法正确显示 - 例如在Xperia E3(480 x 854,218 DPI)或设计器中的3.7“FWVGA滑块上。
以下是它应该如何:
以下是它在某些设备上的样子(只有GridLayout的第一列可见,它甚至超出了屏幕的右侧):
这是XML,基本上GridLayout包含按钮,这里的主要内容是每个按钮都有
android:layout_columnWeight="1"
android:layout_rowWeight="1"
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.3">
...
</RelativeLayout>
<!--Bottom part (buttons)-->
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_weight="0.7"
android:orientation="vertical">
<!--Scroll bar with all the different functions and constants-->
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.1"
android:layout_marginBottom="5dp">
<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbarAlwaysDrawHorizontalTrack="false">
...
</GridLayout>
</HorizontalScrollView>
<!--THIS IS THE PROBLEM Main buttons for the calculator THIS IS THE PROBLEM-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.9">
<GridLayout
android:id="@+id/mainBtnGrid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:rowCount="5"
android:columnCount="5"
android:orientation="vertical">
<Button
android:id="@+id/btnClear"
android:background="@drawable/button_main"
style="@style/button_main_calculator"
android:text="C"
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Button
android:id="@+id/btnSeven"
android:background="@drawable/button_main"
android:onClick="Button_OnClick"
style="@style/button_main_calculator"
android:text="7"
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Button
android:id="@+id/btnFour"
android:background="@drawable/button_main"
android:onClick="Button_OnClick"
style="@style/button_main_calculator"
android:text="4"
android:layout_columnWeight="1"
android:layout_rowWeight="1"/>
<Button
android:id="@+id/btnOne"
android:background="@drawable/button_main"
android:onClick="Button_OnClick"
style="@style/button_main_calculator"
android:text="1"
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Button
android:id="@+id/btnSign"
android:background="@drawable/button_main"
style="@style/button_main_calculator"
android:text="±"
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Button
android:id="@+id/btnBack"
android:background="@drawable/button_main"
style="@style/button_main_calculator"
android:text="B"
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Button
android:id="@+id/btnEight"
android:background="@drawable/button_main"
android:onClick="Button_OnClick"
style="@style/button_main_calculator"
android:text="8"
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Button
android:id="@+id/btnFive"
android:background="@drawable/button_main"
android:onClick="Button_OnClick"
style="@style/button_main_calculator"
android:text="5"
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Button
android:id="@+id/btnTwo"
android:background="@drawable/button_main"
android:onClick="Button_OnClick"
style="@style/button_main_calculator"
android:text="2"
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Button
android:id="@+id/btnZero"
android:background="@drawable/button_main"
android:onClick="Button_OnClick"
style="@style/button_main_calculator"
android:text="0"
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Button
android:id="@+id/btnTypingPositionSwitch"
android:background="@drawable/button_main"
style="@style/button_main_calculator"
android:text="M"
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Button
android:id="@+id/btnNine"
android:background="@drawable/button_main"
android:onClick="Button_OnClick"
style="@style/button_main_calculator"
android:text="9"
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Button
android:id="@+id/btnSix"
android:background="@drawable/button_main"
android:onClick="Button_OnClick"
style="@style/button_main_calculator"
android:text="6"
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Button
android:id="@+id/btnThree"
android:background="@drawable/button_main"
android:onClick="Button_OnClick"
style="@style/button_main_calculator"
android:text="3"
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Button
android:id="@+id/btnDecimal"
android:background="@drawable/button_main"
android:onClick="Button_OnClick"
style="@style/button_main_calculator"
android:text="."
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Space
android:layout_width="5dp" />
<Space
android:layout_width="5dp" />
<Space
android:layout_width="5dp" />
<Space
android:layout_width="5dp" />
<Space
android:layout_width="5dp" />
<Button
android:id="@+id/btnDivide"
android:background="@drawable/button_operator"
android:onClick="Button_OnClick"
style="@style/button_main_calculator"
android:text="/"
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Button
android:id="@+id/btnMultiply"
android:background="@drawable/button_operator"
android:onClick="Button_OnClick"
style="@style/button_main_calculator"
android:text="x"
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Button
android:id="@+id/btnSubtract"
android:background="@drawable/button_operator"
android:onClick="Button_OnClick"
style="@style/button_main_calculator"
android:text="-"
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Button
android:id="@+id/btnAdd"
android:background="@drawable/button_operator"
android:onClick="Button_OnClick"
style="@style/button_main_calculator"
android:text="+"
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
<Button
android:id="@+id/btnEquals"
android:background="@drawable/button_operator"
style="@style/button_main_calculator"
android:text="="
android:layout_columnWeight="1"
android:layout_rowWeight="1" />
</GridLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
我不知道该怎么做,我的意思是,它不会经常发生!感谢您阅读本文,我将非常感谢您的任何建议。
答案 0 :(得分:0)
我终于找到了解决这个问题的方法。我已经放弃了,我以编程方式完成了所有工作,但后来我再次开始使用xml。原来你只需要指定
android:layout_width="0dp"
对于每个按钮。然后它看起来应该是所有不同的屏幕分辨率和尺寸。
我怀疑这是因为在较小的屏幕上,即使在我指定之前,网格布局也会溢出
android:layout_columnWeight="1"
android:layout_rowWeight="1"
因此它并不知道它应该伸展多远#34;
但是,现在当宽度设置为0dp时,它不会溢出任何地方,这就是为什么现在添加权重可以完美运行的原因。
我希望这可以帮助你们中的一些人 - 这是一个非常令人沮丧的问题!