在设计器上正确呈现时,设备上的线性布局对齐问题



我有这段代码,我希望 4 个按钮以给定的大小出现,并有一个文本视图来占用剩余空间。 这段代码虽然在Android Studio Designer上正确呈现,但在设备上似乎TextView采用wrapcontent属性而不是layoutweight。 我错过了什么吗?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/bg_now_playing"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/primaryColor"
android:orientation="vertical"
tools:ignore="RtlHardcoded"
android:baselineAligned="false">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.7"
android:background="@color/miniplayer_color"
android:orientation="vertical">

<!--few components-->
<LinearLayout
android:id="@+id/bottom_controls"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/options"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/now_playing_extra_options_bg"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/nowplaying_favourites"
android:layout_width="@dimen/nowplaying_icon_dimension"
android:layout_height="@dimen/nowplaying_icon_dimension"
android:layout_marginLeft="@dimen/nowplaying_button_padding"
android:src="@drawable/favorite_icon" />
<ImageView
android:id="@+id/download_btn"
android:layout_width="@dimen/nowplaying_icon_dimension"
android:layout_height="@dimen/nowplaying_icon_dimension"
android:layout_margin="@dimen/nowplaying_button_padding"
android:src="@drawable/download_icon" />
<ImageView
android:id="@+id/now_playing_share_btn"
android:layout_width="@dimen/nowplaying_icon_dimension"
android:layout_height="@dimen/nowplaying_icon_dimension"
android:layout_marginRight="@dimen/nowplaying_button_padding"
android:src="@drawable/share_icon" />
<views.CustomTextView
android:id="@+id/caller_tune"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/roundcorner_white"
android:fontFamily="@string/roboto_regular"
android:text="@string/tune"
android:textAlignment="center"
android:textColor="@color/miniplayer_color"
android:textSize="@dimen/button_text_size"
android:textStyle="bold" />
<ImageView
android:id="@+id/equalizer_now_playing"
android:layout_width="@dimen/nowplaying_icon_dimension"
android:layout_height="@dimen/nowplaying_icon_dimension"
android:layout_margin="@dimen/nowplaying_button_padding"
android:gravity="right"
android:src="@drawable/equalizer_icon" />
</LinearLayout>
</LinearLayout>
<!--few more components-->
</LinearLayout>
</LinearLayout>

我认为这可能是您的自定义视图的问题。因为我只放置了文本视图,所以它工作正常。这是我的示例代码,其中包含示例图标和指标。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/bg_now_playing"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/darker_gray"
android:baselineAligned="false"
android:orientation="vertical"
tools:ignore="RtlHardcoded">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.7"
android:background="@color/colorPrimary"
android:orientation="vertical">

<!--few components-->
<LinearLayout
android:id="@+id/bottom_controls"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/options"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/nowplaying_favourites"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="4dp"
android:src="@android:drawable/ic_delete" />
<ImageView
android:id="@+id/download_btn"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="4dp"
android:src="@android:drawable/ic_delete" />
<ImageView
android:id="@+id/now_playing_share_btn"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="4dp"
android:src="@android:drawable/ic_delete" />
<views.CustomTextView
android:id="@+id/caller_tune"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/roundcorner_white"
android:fontFamily="@string/roboto_regular"
android:text="@string/tune"
android:textAlignment="center"
android:textColor="@color/miniplayer_color"
android:textSize="@dimen/button_text_size"
android:textStyle="bold" />
<ImageView
android:id="@+id/equalizer_now_playing"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="4dp"
android:gravity="right"
android:src="@android:drawable/ic_delete" />
</LinearLayout>
</LinearLayout>
<!--few more components-->
</LinearLayout>

最新更新