Ответ 1
Если вам нужен равный интервал, вам не нужен RelativeLayout
. Используйте LinearLayout
, как вы предлагаете в своем вопросе. Если необходимо, поместите Buttons
в LinearLayout
и поместите LinearLayout
в RelativeLayout
.
Я использую Relative Layout для создания экрана калькулятора, и у меня есть ряд кнопок с метками 1, 2 и 3. Я хочу, чтобы они были равномерно распределены, но я не уверен, как это сделать с Relative Layout
Я использую функцию android: layout_weight в LinearLayout и даю каждому из них значение android: layout_width = "fill_parent", а также layout_weight = "1"
любой способ заставить это произойти на экране калькулятора (без указания DP или PX)
это то, что я установил на данный момент, и они выравниваются по порядку слева направо в окне TextView (экран вывода калькулятора). любые предложения/решения для равномерного пространства, заполняя ширину экрана?
<TextView
android:id="@+id/textView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/edit_text"
android:layout_margin="6px"
/>
<Button
android:id="@+id/button1"
android:text="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView"
/>
<Button
android:id="@+id/button2"
android:text="2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView"
android:layout_toRightOf="@+id/button1"/>
<Button
android:id="@+id/button3"
android:text="3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView"
android:layout_toRightOf="@+id/button2"
/>
Если вам нужен равный интервал, вам не нужен RelativeLayout
. Используйте LinearLayout
, как вы предлагаете в своем вопросе. Если необходимо, поместите Buttons
в LinearLayout
и поместите LinearLayout
в RelativeLayout
.
Проще всего было бы управлять просмотром во время OnCreate().
Что-то вроде:
OnCreate(Context ctx){
int w = getWidth();
int h = getHeight();
Button B1 = findViewById(R.id.button1);
B1.setWidth(w/3);
--repeat for button2,3 textview--
}
Другой вариант - использовать TableLayout, где вы растягиваете столбцы и заставляете кнопки заполнять родительский элемент. Для этого вам потребуется использовать
<TableLayout android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="0,1,2"
android:layout_below="@+id/textView">
<TableRow><Button
android:id="@+id/button1"
android:text="1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/><Button
android:id="@+id/button2"
android:text="2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</TableRow>
</TableLayout>