簡體   English   中英

Android:LinearLayout的布局問題

[英]Android: Layout Problems with LinearLayout

我一定做錯了所有的一切,布局使我困惑,所以我希望有人可以引導我朝着正確的方向前進。 整個事情都是一團糟,因為自從我一個月前創建它以來,我一直在不停地擺弄它,試圖在這里和那里解決一些小問題,因此,我為這次災難提前很多道歉。

從字面上看,我想要的是一個LinearLayout ,其中所有內容都水平和垂直居中。

這就是它在“設計”頁面中顯示的方式。

在此處輸入圖片說明

在轉儲布局之前,請允許我解釋發生了什么。 我有一個TextView ,它在ImageButton上方顯示狀態消息。 ImageButton下面,我有一個TextSwitcher ,最后是一個圓形的ProgressBar

我不得不將android:adjustViewBounds="true"android:scaleType="fitCenter"放在我的ImageButton因為圖像比適合的要大得多。

無論如何,這是轉儲。 希望有人可以提出建議。

<LinearLayout 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="fill_parent"
    android:layout_height="fill_parent"
    android:paddingBottom="0dp"
    android:paddingLeft="0dp"
    android:paddingRight="0dp"
    android:paddingTop="0dp"
    android:orientation="vertical"
    android:layout_gravity="fill_vertical|center"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:screenOrientation="nosensor"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.gesslar.threshvote.MainActivity"
    android:background="@color/colorFaded"
    tools:showIn="@layout/activity_main">

    <TextView android:id="@+id/textStatusMessage"
        android:textColor="@color/colorText"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        android:gravity="center" />

    <ImageButton android:id="@+id/buttonVote"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="false"
        android:src="@drawable/ic_vote_button_image"
        android:background="@android:color/transparent"
        android:scaleType="fitCenter"
        android:onClick="onVotePressed"
        android:layout_gravity="center_horizontal|center_vertical"
        android:adjustViewBounds="true" />

    <TextSwitcher android:id="@+id/textCountdown"
        android:gravity="center"
        android:layout_gravity="center_horizontal"
        android:textColor="@color/colorText"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textSize="@dimen/countdown"
        android:includeFontPadding="false"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <ProgressBar android:id="@+id/loadingBar"
        style="@style/Widget.AppCompat.ProgressBar"
        android:layout_gravity="end"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:visibility="invisible"
        android:indeterminate="true"/>

</LinearLayout>

如果您仍然喜歡使用LinearLayout ,則可以像這樣命令布局,使其在水平和垂直方向上都具有一個布局中心

    <LinearLayout
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#0ff"
                android:orientation="horizontal" >

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:orientation="vertical" >

                    <Button
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:text="Button Center Vertical/ Horizontal" />
                </LinearLayout>
</LinearLayout>

或簡單地將RelativeLayoutandroid:layout_centerInParent="true"以使布局中心都朝向

希望這個幫助

首先,LinearLayout可以水平或垂直存儲所有內容,但不能同時存儲兩者。 因此,您必須特別選擇想要的東西。 如果您希望所有內容以垂直方式顯示但仍以某些組件形式顯示,例如TextView需要處於水平布局,則您可能希望使用另一個LinearLayout(嵌套在主要LinearLayout內,並賦予其方向:Horizo​​ntal)。

除此之外,我認為該布局沒有任何問題,或者我沒有正確理解您的問題,無論是哪一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM