Я пытаюсь создать приложение для калькулятора и использую сетку в виде фрагмента для чисел, но мне не удается заставить кнопки заполнить ту часть, которую они должны пытаться использовать на разных устройствах.
<android.support.v7.widget.GridLayout
android:layout_width="match_parent"
android:layout_height="419dp"
android:layout_margin="0dp"
android:padding="0dp"
app:columnCount="4"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="100"
app:rowCount="4"
app:useDefaultMargins="false">
<Button
android:id="@+id/but_7"
android:layout_width="96sp"
android:layout_height="96sp"
android:layout_marginLeft="-3sp"
android:layout_marginTop="-5sp"
android:layout_marginRight="-3sp"
android:layout_marginBottom="-5sp"
android:onClick="AddBut"
android:text="7"
android:textSize="36sp" />
<Button
android:id="@+id/but_8"
android:layout_width="96sp"
android:layout_height="96sp"
android:layout_marginLeft="-3sp"
android:layout_marginTop="-5sp"
android:layout_marginRight="-3sp"
android:layout_marginBottom="-5sp"
android:lineSpacingExtra="0sp"
android:onClick="AddBut"
android:text="8"
android:textSize="36sp" />
<Button
android:id="@+id/but_9"
android:layout_width="96sp"
android:layout_height="96sp"
android:layout_marginLeft="-3sp"
android:layout_marginTop="-5sp"
android:layout_marginRight="-3sp"
android:layout_marginBottom="-5sp"
android:onClick="AddBut"
android:text="9"
android:textSize="36sp" />
<Button
android:id="@+id/but_div"
android:layout_width="96sp"
android:layout_height="96sp"
android:layout_marginLeft="-3sp"
android:layout_marginTop="-5sp"
android:layout_marginRight="-3sp"
android:layout_marginBottom="-5sp"
android:onClick="ButOP"
android:text="÷"
android:textSize="36sp" />
<Button
android:id="@+id/but_4"
android:layout_width="96sp"
android:layout_height="96sp"
android:layout_marginLeft="-3sp"
android:layout_marginTop="-5sp"
android:layout_marginRight="-3sp"
android:layout_marginBottom="-5sp"
android:onClick="AddBut"
android:text="4"
android:textSize="36sp" />
<Button
android:id="@+id/but_5"
android:layout_width="96sp"
android:layout_height="96sp"
android:layout_marginLeft="-3sp"
android:layout_marginTop="-5sp"
android:layout_marginRight="-3sp"
android:layout_marginBottom="-5sp"
android:onClick="AddBut"
android:text="5"
android:textSize="36sp" />
<Button
android:id="@+id/but_6"
android:layout_width="96sp"
android:layout_height="96sp"
android:layout_marginLeft="-3sp"
android:layout_marginTop="-5sp"
android:layout_marginRight="-3sp"
android:layout_marginBottom="-5sp"
android:onClick="AddBut"
android:text="6"
android:textSize="36sp" />
<Button
android:id="@+id/but_mult"
android:layout_width="96sp"
android:layout_height="96sp"
android:layout_marginLeft="-3sp"
android:layout_marginTop="-5sp"
android:layout_marginRight="-3sp"
android:layout_marginBottom="-5sp"
android:onClick="ButOP"
android:text="x"
android:textSize="36sp" />
<Button
android:id="@+id/but_1"
android:layout_width="96sp"
android:layout_height="96sp"
android:layout_marginLeft="-3sp"
android:layout_marginTop="-5sp"
android:layout_marginRight="-3sp"
android:layout_marginBottom="-5sp"
android:onClick="AddBut"
android:text="1"
android:textSize="36sp" />
<Button
android:id="@+id/but_2"
android:layout_width="96sp"
android:layout_height="96sp"
android:layout_marginLeft="-3sp"
android:layout_marginTop="-5sp"
android:layout_marginRight="-3sp"
android:layout_marginBottom="-5sp"
android:onClick="AddBut"
android:text="2"
android:textSize="36sp" />
<Button
android:id="@+id/but_3"
android:layout_width="96sp"
android:layout_height="96sp"
android:layout_marginLeft="-3sp"
android:layout_marginTop="-5sp"
android:layout_marginRight="-3sp"
android:layout_marginBottom="-5sp"
android:onClick="AddBut"
android:text="3"
android:textSize="36sp" />
<Button
android:id="@+id/but_min"
android:layout_width="96sp"
android:layout_height="96sp"
android:layout_marginLeft="-3sp"
android:layout_marginTop="-5sp"
android:layout_marginRight="-3sp"
android:layout_marginBottom="-5sp"
android:onClick="ButOP"
android:text="-"
android:textSize="36sp" />
<Button
android:id="@+id/but_0"
android:layout_width="96sp"
android:layout_height="96sp"
android:layout_marginLeft="-3sp"
android:layout_marginTop="-5sp"
android:layout_marginRight="-3sp"
android:layout_marginBottom="-5sp"
android:onClick="AddBut"
android:text="0"
android:textSize="36sp" />
<Button
android:id="@+id/but_dot"
android:layout_width="96sp"
android:layout_height="96sp"
android:layout_marginLeft="-3sp"
android:layout_marginTop="-5sp"
android:layout_marginRight="-3sp"
android:layout_marginBottom="-5sp"
android:onClick="ButOP"
android:text="."
android:textSize="36sp" />
<Button
android:id="@+id/but_eq"
android:layout_width="96sp"
android:layout_height="96sp"
android:layout_marginLeft="-3sp"
android:layout_marginTop="-5sp"
android:layout_marginRight="-3sp"
android:layout_marginBottom="-5sp"
android:onClick="ButOP"
android:text="="
android:textSize="36sp" />
<Button
android:id="@+id/but_plus"
android:layout_width="96sp"
android:layout_height="96sp"
android:layout_marginLeft="-3sp"
android:layout_marginTop="-5sp"
android:layout_marginRight="-3sp"
android:layout_marginBottom="-5sp"
android:onClick="ButOP"
android:text="+"
android:textSize="36sp" />
</android.support.v7.widget.GridLayout>
Вот так у меня сейчас есть макет, он подходит к моему телефону, но оставляет поля в эмуляторе Nexus 5X.Я попытался с rowWeight и columnWeight, но я не знаю, просто ли это работает, или я делаю что-то не так.Также пробовал переключаться между dp и sp ... Я много пытался найти, как использовать процент, основанный на secreen или подобном, но ни один не работал (или я не мог заставить его работать ...)
То, что я хочу, этокнопки, чтобы заполнить ширину экрана в любом устройстве и сделать высоту такой же, как ширина для каждой кнопки, например height = btn.getwidth ();Я не знаю, возможно ли это.
Я знаю, что я звучу как расширенный нуб, но я учусь, поэтому, пожалуйста, не сердитесь на меня.