【问题标题】:Center landscape linearlayout android中心横向线性布局android
【发布时间】:2015-01-14 11:46:03
【问题描述】:

我有一个 LinearLayout(orientation=vertical) 和一个 GridView,都在一个 LinearLayout(orientation=horizo​​ntal) 中。

我想将 LL 和 GridView 从大的内部居中,但无论我将重力设置在哪里,元素都会一直粘在左侧。

代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/linlay"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.tppa.hangman.GameActivity" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.tppa.hangman.GameActivity" >

        <TextView
            android:id="@+id/incercari"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal" />

        <ImageView
            android:id="@+id/tries6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:adjustViewBounds="true"
            android:contentDescription="asd"
            android:maxHeight="150dp"
            android:maxWidth="150dp"
            android:paddingTop="15dp"
            android:src="@drawable/tries6" />

        <ImageView
            android:id="@+id/tries5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:adjustViewBounds="true"
            android:contentDescription="asd"
            android:maxHeight="150dp"
            android:maxWidth="150dp"
            android:paddingTop="15dp"
            android:src="@drawable/tries5" />

        <ImageView
            android:id="@+id/tries4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:adjustViewBounds="true"
            android:contentDescription="asd"
            android:maxHeight="150dp"
            android:maxWidth="150dp"
            android:paddingTop="15dp"
            android:src="@drawable/tries4" />

        <ImageView
            android:id="@+id/tries3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:adjustViewBounds="true"
            android:contentDescription="asd"
            android:maxHeight="150dp"
            android:maxWidth="150dp"
            android:paddingTop="15dp"
            android:src="@drawable/tries3" />

        <ImageView
            android:id="@+id/tries2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:adjustViewBounds="true"
            android:contentDescription="asd"
            android:maxHeight="150dp"
            android:maxWidth="150dp"
            android:paddingTop="15dp"
            android:src="@drawable/tries2" />

        <ImageView
            android:id="@+id/tries1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:adjustViewBounds="true"
            android:contentDescription="asd"
            android:maxHeight="150dp"
            android:maxWidth="150dp"
            android:paddingTop="15dp"
            android:src="@drawable/tries1" />

        <ImageView
            android:id="@+id/tries0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:adjustViewBounds="true"
            android:contentDescription="asd"
            android:maxHeight="150dp"
            android:maxWidth="150dp"
            android:paddingTop="15dp"
            android:src="@drawable/tries0" />

        <TextView
            android:id="@+id/guess"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal" />
    </LinearLayout>

    <GridLayout
        android:id="@+id/gridlay"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:columnCount="5" >
    </GridLayout>

</LinearLayout>

图片

GridView 的内容是以编程方式生成的

        for (int i = 65; i <= 90; i++) {        
        final char litera = (char) i;
        final Button button = new Button(this);
        button.setId(i);
        button.setTextSize(7 * getResources().getDisplayMetrics().density);
        button.setText(String.valueOf(litera));
        button.setLayoutParams(new LayoutParams(50, 50));           
        layout.addView(button);
         ....

【问题讨论】:

  • 将 android:gravity="center_vertical|center_horizo​​ntal" 设置为 id linlay
  • 成功了,谢谢。添加为答案,以便我可以投票(以及一个小的解释)。
  • 如果有帮助,请接受答案。

标签: android android-layout


【解决方案1】:

android:gravity="center_vertical|center_horizontal" 设置为 linlay id

gravity 适用于子元素

layout_gravity 适用于“已应用”元素本身

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 2013-10-23
    相关资源
    最近更新 更多