Ребята, привет! При создании (верстки) калькулятора возникла вот такая фигня:
Такое происходит, если я для последних кнопочек (+, -, *, /) сделаю вот такую разметку:
<Button
android:id="@+id/btnPlus"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/Plus"
android:textSize="28sp"
app:layout_gravity="fill_horizontal">
</Button>
Вот разметка вообще всего калькулятора:
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:layout_marginBottom="10dp"
android:layout_marginEnd="10dp"
tools:context="com.example.mary.mysecondcalculator.MainActivity">
<LinearLayout
android:id="@+id/displayRoot"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginStart="20dp"
android:layout_marginTop="30dp"
android:background="@color/displayBackground"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/display"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginRight="20dp"
android:gravity="right"
android:textSize="42sp"
android:textStyle="bold" />
</LinearLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/displayRoot"
android:layout_marginBottom="108dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent">
<android.support.v7.widget.GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:columnCount="4">
<Button
android:id="@+id/btnSeven"
android:text="@string/Seven"
android:textSize="28sp">
</Button>
<Button
android:id="@+id/btnEight"
android:text="@string/Eight"
android:textSize="28sp">
</Button>
<Button
android:id="@+id/btnNine"
android:text="@string/Nine"
android:textSize="28sp">
</Button>
<Button
android:id="@+id/btnPlus"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/Plus"
android:textSize="28sp"
app:layout_gravity="fill_horizontal">
</Button>
<Button
android:id="@+id/btnFour"
android:text="@string/Four"
android:textSize="28sp">
</Button>
<Button
android:id="@+id/btnFive"
android:text="@string/Five"
android:textSize="28sp">
</Button>
<Button
android:id="@+id/btnSix"
android:text="@string/Six"
android:textSize="28sp">
</Button>
<Button
android:id="@+id/btnMinus"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/Minus"
android:textSize="28sp"
app:layout_gravity="fill_horizontal">
</Button>
<Button
android:id="@+id/btnThree"
android:text="@string/Three"
android:textSize="28sp">
</Button>
<Button
android:id="@+id/btnTwo"
android:text="@string/Two"
android:textSize="28sp">
</Button>
<Button
android:id="@+id/btnOne"
android:text="@string/One"
android:textSize="28sp">
</Button>
<Button
android:id="@+id/btnMultiply"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/Multiply"
android:textSize="28sp"
app:layout_gravity="fill_horizontal">
</Button>
<Button
android:id="@+id/btnCancel"
android:text="@string/Cancel"
android:textSize="28sp">
</Button>
<Button
android:id="@+id/btnZero"
android:text="@string/Zero"
android:textSize="28sp">
</Button>
<Button
android:id="@+id/btnEquals"
android:text="@string/Equals"
android:textSize="28sp">
</Button>
<Button
android:id="@+id/btnDivide"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/Divide"
android:textSize="28sp"
app:layout_gravity="fill_horizontal">
</Button>
</android.support.v7.widget.GridLayout>
</FrameLayout>
</android.support.constraint.ConstraintLayout>
Вот кусочек из сборки, куда я подключала библиотеку:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
compile 'com.android.support:gridlayout-v7:26.1.0'
}
тестирую на эмуляторе nexus one (api 25)
Вопрос, собсна - как сделать все кнопки одинаковыми? Попробовала поменять ширину кнопок на wrap-content - разумеется, все кнопки полезли за предел экрана. Гугыл особо не помог :(
Немного информации, чтобы сильно палками не били: я в андроиде новичок (с пол-месяца), имеются знания java (варюсь на протяжении 4 месяцев), html, css, js и прочей лабуды, так что в принципе общий язык в обсуждении смогу найти.
Прошу сильно не ругать, так как стоит цель переквалифицироваться, очень хочу научиться, тренируюсь на кошках.
Всем огромное спасибо за помощь!