嗨,我现在有点残忍。我认为这在Android XML中是可行的。
我想制作这样的布局:
问题在于并排的两个小元素。当我使视图#2与高度相匹配时,我期待它也会尊重其他兄弟的空间。我错了,但我现在明白了。当我将视图#2的layout_height设置为match_parent时,它占用剩余空间,视图#3和视图#4被放入最底部,并且在屏幕中不再可见。
我希望视图#2会在中间扩展,但仍然为视图#3和视图#4以及它下面的一些元素创建一些空间,而不是在下方推动。
这就是我现在正在做的事情:
<RelativeLayout
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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:fitsSystemWindows="true"
tools:context=".TaskActivity">
<android.support.design.widget.TextInputLayout
android:id="@+id/textinput_layout_note_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="16dp">
<EditText
android:id="@+id/edittext_task"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:singleLine="true"
android:textSize="32sp"
android:padding="8dp"
android:hint="@string/edittext_task_title_hint"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/textinput_layout_note_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/textinput_layout_note_title">
<EditText
android:id="@+id/edittext_todo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:maxLines="1"
android:gravity="top"
android:hint="@string/edittext_task_content_hint"/>
</android.support.design.widget.TextInputLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textinput_layout_note_description"
android:orientation="horizontal">
<ImageButton
android:id="@+id/imagebutton_insert_note"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_content_add_black"
android:contentDescription="@string/content_description_choose_note"
style="?android:attr/borderlessButtonStyle" />
<ImageButton
android:id="@+id/imagebutton_expand_note"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_open_in_new_black_24dp"
android:contentDescription="@string/content_description_expand_note"
style="?android:attr/borderlessButtonStyle" />
</LinearLayout>
</RelativeLayout>
我已经将LinearLayout与layout_weight结合使用,但由于我有一些同样需要权重的嵌套视图,因此速度越来越慢。我希望这是相对完成的。
我是如何实现这种布局的?
谢谢!
答案 0 :(得分:1)
我希望这是相对完成的。
RelativeLayout
不是表现的灵丹妙药。
我是如何实现这种布局的?
尝试:
<RelativeLayout
...>
<android.support.design.widget.TextInputLayout
android:id="@+id/textinput_layout_note_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:paddingTop="16dp">
...
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/textinput_layout_note_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/textinput_layout_note_title"
android:layout_above="@+id/whatever_this_thing_is"/>
...
</android.support.design.widget.TextInputLayout>
<LinearLayout
android:id="@id/whatever_this_thing_is"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal">
...
</LinearLayout>
</RelativeLayout>
(其中...
位用于您已有的内容,已移除以保持列表更短)
IOW:
答案 1 :(得分:1)
尝试这种方法!,我没有在android studio中尝试过,但它应该可以解决这个问题。
ColorStateList