[英]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>
或簡單地將RelativeLayout
與android:layout_centerInParent="true"
以使布局中心都朝向
希望這個幫助
首先,LinearLayout可以水平或垂直存儲所有內容,但不能同時存儲兩者。 因此,您必須特別選擇想要的東西。 如果您希望所有內容以垂直方式顯示但仍以某些組件形式顯示,例如TextView需要處於水平布局,則您可能希望使用另一個LinearLayout(嵌套在主要LinearLayout內,並賦予其方向:Horizontal)。
除此之外,我認為該布局沒有任何問題,或者我沒有正確理解您的問題,無論是哪一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.