标签: layout-gravity

Android:layout_gravity中心不居中

我有一个问题,那可能是愚蠢的,但我无法弄清楚为什么这不起作用.

基本上,我的活动中有一个标题.此标题应居中.

布局XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

<TextView 
    style="@style/TextHeader"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/define"
    />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在styles.xml中定义

<style name="TextHeader">
    <item name="android:textSize">20dp</item>
    <item name="android:paddingTop">15dp</item>
    <item name="android:layout_gravity">center</item>
    <item name="android:paddingBottom">15dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

据我所知,layout_gravity定义组件本身gravity的重力,同时定义该组件内容的重力.我尝试了两种方式,包括center和center_horizo​​ntal.我还制作了标题TextView layout_width:wrap_content并尝试将其集中在一起layout_gravity,但结果始终如下(如果我将应用程序放在手机上,同样的事情)

在此输入图像描述

为什么会这样?我该怎么解决?

android android-layout layout-gravity

4
推荐指数
1
解决办法
2万
查看次数

如何在水平LinearLayout中将元素右对齐?

我有一个LinearLayout包含了很多TextViewsImageButtons我要对齐的一些元素向右的,我看了一眼这个这个,但我不能用自己的技巧,因为我不能改变orientation,不能使android.gravity:right作为我不想将所有元素对齐,我也不能使用嵌套布局或所需元素,RelativeLayout因为它将其余元素向左移动,我希望它们位于中心.

这是我的代码:

 <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="0.15"
            android:layout_marginTop="10dp"
            android:layout_gravity="center"
            android:gravity="center"
            android:background="@drawable/media_mediabar"
            android:orientation="horizontal" >

            <ImageButton
                android:id="@+id/move_backward"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:adjustViewBounds="true"
                android:background="@android:color/transparent"
                android:clickable="true"
                android:scaleType="centerInside"
                android:src="@drawable/media_button_rewind"
                android:layout_marginLeft="7dp"
                android:layout_marginRight="7dp"
                android:tag="released"/>

           <ImageButton
                android:id="@+id/rmeote_mines"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:adjustViewBounds="true"
                android:background="@android:color/transparent"
                android:clickable="true"
                android:scaleType="centerInside"
                android:src="@drawable/remote_minus" />


          <TextView 
                android:id="@+id/remote_plus_minus"
                android:text="0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@android:color/white"
                android:layout_gravity="center"
                android:layout_marginTop="15dp"
                android:layout_marginBottom="15dp" />
            .
            .
            .<!.. some other elements ..!>
        </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

期望的结果:

在此输入图像描述

android android-layout android-linearlayout android-orientation layout-gravity

3
推荐指数
2
解决办法
3万
查看次数

如何居中查看内部布局

我必须建立如下图所示的布局.主要任务是使文本居中.

在此输入图像描述

我使用这个xml来实现布局.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/ll"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center_vertical"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/author"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/author">
    </LinearLayout>

    <LinearLayout
        android:id="@+id/footer_layout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="bottom"
        android:orientation="vertical" 
        android:layout_alignParentBottom="true">

        <LinearLayout
            android:id="@+id/menu_layout"
            android:layout_width="fill_parent"
            android:layout_height="60dp"
            android:background="@drawable/nav_overlay"
            android:gravity="center_horizontal"
            android:orientation="horizontal">

            <Button
                android:id="@+id/previous"
                android:layout_width="45dp"
                android:layout_height="45dp"
                android:background="@drawable/button" />

        </LinearLayout>

        <com.google.ads.AdView
            xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
            android:id="@+id/adView"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            ads:adSize="BANNER"
            ads:adUnitId="@string/admob_id"
            ads:loadAdOnCreate="true" />
    </LinearLayout>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

但它工作不正确.
我需要中心TextView android:id="@+id/author"LinearLayout android:id="@+id/ll".但它以父母为中心RelativeLayout android:id="@+id/main_layout".
我用的android:layout_height="fill_parent"LinearLayout android:id="@+id/ll".
我的布局如何填充不是父级而是仅剩余空间?
如果有人遇到类似的问题,请举例说明其实施情况.

编辑:现在我有错误的居中文本,如下图所示.
在此输入图像描述

此时,我认为最好的解决方案是使用android:layout_weight.
但是,当广告未显示时 …

android android-layout android-linearlayout layout-gravity

2
推荐指数
1
解决办法
1415
查看次数

Android LinearLayout在java代码中设置layout_gravity

我在这个布局上遇到了问题:(

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/cuerpo"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:orientation="vertical" >
...
Run Code Online (Sandbox Code Playgroud)

在java代码中

LinearLayout cuerpo = (LinearLayout) findViewById(R.id.cuerpo);

if(align){
   cuerpo.setGravity(Gravity.CENTER_VERTICAL);
}else{
   cuerpo.setGravity(Gravity.NO_GRAVITY);
}
Run Code Online (Sandbox Code Playgroud)

我需要layout_gravity没有引力.

java layout android layout-gravity

2
推荐指数
1
解决办法
1万
查看次数

为什么右边的按钮不能像父母左边的左边按钮一样

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:text="left" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="center" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="end"
            android:text="right" />
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我知道我也可以使用Relativelayout并设置alignparentRight = true,让右边的按钮位于这个父节点的右侧,但我只是想知道,如果我使用的是LinearLayout,我怎样才能在它的右边做右边的按钮家长吗?任何帮助谢谢

android layout-gravity

2
推荐指数
1
解决办法
1866
查看次数

无法在DrawerLayout中对ListView使用layout_gravity

我想在我的应用程序中添加导航抽屉.这是代码:

<DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.abcxyz.properprojectdb.MyDrawerActivity">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"></FrameLayout>

    <ListView
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:id="@+id/listView"
        android:entries="@array/planets"></ListView>
</DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

我无法为ListView添加属性android:layout_gravity.我不知道它为什么不能使用(intellisense工作得很好,但它不会显示layout_gravity)

我运行时我的应用程序崩溃,但如果我用LinearLayout替换DrawerLayout,应用程序不会崩溃.我猜这是因为我没有为Lis​​tView添加属性android:layout_gravity. 在此输入图像描述 这是一个快照,显示layout_gravity也没有出现在intellisense中

android listview android-appcompat layout-gravity navigation-drawer

2
推荐指数
1
解决办法
3460
查看次数

将LinearLayout与DrawerLayout的底部对齐

我已经在应用程序的主要XML布局中实现了DrawerLayout,并且创建了一个页脚(基本上是水平[导航]栏),该页脚填充了屏幕的底部。问题是-它是不断地出现在屏幕的顶部...我已经尝试使用android:layout_gravity="bottom"android:layout_weight="1.0"android:baselineAligned="false"作为记录在这里:http://sandipchitale.blogspot.com/2010/05/linearlayout-gravity-and-layoutgravity。 html但是,我似乎仍然无法使页脚出现在布局的顶部。

任何建议表示赞赏:

XML代码段:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="bottom"
    android:background="@color/black"
    android:baselineAligned="false" >



    ...



        <LinearLayout
        android:id="@+id/footer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1.0"
        android:orientation="horizontal" >
    </LinearLayout>

</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

完整的XML来源:

http://pastebin.com/67cHtwJ1

屏幕截图:

在此处输入图片说明

xml android android-layout layout-gravity android-layout-weight

2
推荐指数
1
解决办法
1701
查看次数

LinearLayout 2 views, if one is gone, it doesn't center the other, although I update the weightSum

this is my layout:

 <LinearLayout
        android:id="@+id/car_linear_layout"
        android:layout_toRightOf="@id/car_image"
        android:layout_width="wrap_content"
        android:orientation="vertical"
        android:layout_centerVertical="true"
        android:gravity="center_vertical"
        android:layout_height="50sp"
        android:weightSum="2">
        <TextView
            android:id="@+id/car_layout_name"
            android:textSize="17sp"
            android:maxLines="1"
            android:textColor="@color/black"
            android:ellipsize="end"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"/>
        <TextView
            android:id="@+id/car_layout_license"
            android:textSize="17sp"
            android:maxLines="1"
            android:ellipsize="end"
            android:textColor="@color/black"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"/>
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

And this is my code:

    if (userVehicleID != null) {
        carLayout.setWeightSum(2);
        carLicense.setText("test");
    }else{
        carLayout.setWeightSum(1);
        carLicense.setVisibility(View.GONE);
    } 
Run Code Online (Sandbox Code Playgroud)

But even so, if I debug, and it enters the ELSE , it will show just the first textview, but it's not centered. why?

android android-linearlayout layout-gravity android-layout-weight

2
推荐指数
1
解决办法
853
查看次数

Java中TextView的Android layout_gravity

我想改变的布局重心TextView的
通过 XML,您可以通过android:layout_gravity="value".
我知道为了改变重力本身,你会通过 XML 做android:gravity="value",而在 Java 中你会做textview.setGravity(Gravity.VALUE);
但遗憾的是,没有textview.setLayoutGravity(VALUE);,所以我被卡住了。
谢谢!

android layout-gravity

1
推荐指数
1
解决办法
4045
查看次数

GravityForms - 在条目列上使用下拉列表列出字段

我使用 GravityForms 列表字段。我在此列表字段上使用了多个列。我的问题是:对于一列,我可以得到一个带有多个选项的下拉列表吗?

我可以在 PHP 中实现它,但不知道使用 API。事实上,我只想在下拉列表中转换一个文本框字段。你有什么想法吗?

你可以在这里看到我想要的:http : //img11.hostingpics.net/pics/854196c20150309154121.jpg

wordpress layout-gravity gravity-forms-plugin

0
推荐指数
1
解决办法
2825
查看次数

如果容器布局在滚动视图中,则Android中心重力不起作用

我正在创建一个ProgressBar放置在LinearLayout的垂直中心(其他布局不起作用;我需要使用LinearLayout).这是一些代码:

LinearLayout linearLayout = new LinearLayout(context);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.MATCH_PARENT,
        LinearLayout.LayoutParams.MATCH_PARENT);
linearLayout.setLayoutParams(layoutParams);
linearLayout.setOrientation(LinearLayout.VERTICAL);
linearLayout.setGravity(Gravity.CENTER);

//add progressbar
ProgressBar progressBar = new ProgressBar(context);
progressBar.setLayoutParams(new ViewGroup.LayoutParams(
        ViewGroup.LayoutParams.WRAP_CONTENT,
        ViewGroup.LayoutParams.WRAP_CONTENT));
linearLayout.addView(progressBar);
Run Code Online (Sandbox Code Playgroud)

我有一个ContainerView,它将保存上面创建的LinearLayout.像这样的东西:

public class ContainerView extends ScrollView {
    public ContainerView(Context context) {
        super(context);
        initView(context);
    }

    private void initView(Context context){
        addView(linearLayout);     //which is created in the snippet above
    }
} 
Run Code Online (Sandbox Code Playgroud)

如果我使用LinearLayout扩展ContainerView,一切正常.

如果我使用ScrollView扩展ContainerView,则ProgressBar水平居中但不垂直居中.

这种双重行为背后的原因是什么?我的目标是在下载一些数据时显示ProgressBar; 下载数据后,我需要在LinearLayout中显示它.

(注意:使用ScrollView的原因是下载的数据可能太大而不适合小屏幕.这可能看起来像ListView的用例,但还有一些其他原因阻止我使用ListView.)

android scrollview android-layout layout-gravity android-gravity

-18
推荐指数
1
解决办法
953
查看次数