Я хотел бы сделать кнопку (одна между двумя другими кнопками).Как сделать квадрат кнопки и изменить размер
Я пытался использовать следующий код:
toggleButton = (ToggleButton) findViewById(R.id.activity_dictionary_toggleButton1);
LinearLayout.LayoutParams toggleButtonLayoutParams = (LayoutParams) toggleButton.getLayoutParams();
toggleButtonLayoutParams.width = toggleButtonLayoutParams.height;
toggleButton.setLayoutParams(toggleButtonLayoutParams);
Но он не работает (кнопка выглядеть на изображении выше). Вот часть моего XML-файла:
<LinearLayout
android:id="@+id/activity_dictionary_linearLayout2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginTop="5dp" >
<Button
android:id="@+id/activity_dictionary_button1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_weight="0.4"
android:enabled="false"
android:maxWidth="200dp"
android:text="Clear"
android:textColor="@android:color/white" />
<ToggleButton
android:id="@+id/activity_dictionary_toggleButton1"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_weight="0.2"
android:background="@drawable/settings"
android:text="ToggleButton" />
<Button
android:id="@+id/activity_dictionary_button2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_weight="0.4"
android:enabled="false"
android:maxWidth="200dp"
android:text="Recognize"
android:textColor="@android:color/white" />
</LinearLayout>
Что я должен изменить?
Обновление: android:layout_weight="0.2"
удаляется, но кнопка все еще не меняет свой размер, когда я пытаюсь сделать это с помощью кода (он круглый, но очень маленький).
Но родительский макет - LinearLayout. Почему я должен переключить его на RelativeLayout? Он работает, но я не понимаю, почему ... – Marek
Простите меня за то, что у меня нет технического ответа. LinearLayouts работают лучше всего, когда вы пытаетесь объединить все вместе, и хотите, чтобы они отображались на всех экранах одинакового отображения. Вы действительно хотели установить высоты и ширину, и для этого linearlayouts - это не лучшая вещь. Relativelayout не имеет этих параметров и фактически использует заданную высоту и ширину. Если вы хотите получить больше технических определений, я бы предложил посмотреть заметки разработчика http://developer.android.com/reference/android/widget/LinearLayout.html; –
То, что меня смущает, это то, что я думал, что вы всегда должны использовать LayoutParameters of Parent. Для моей кнопки родительский LinearLayout. Почему редактор не показывает ошибку? – Marek