我有一个问题,那可能是愚蠢的,但我无法弄清楚为什么这不起作用.
基本上,我的活动中有一个标题.此标题应居中.
布局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_horizontal.我还制作了标题TextView layout_width:wrap_content并尝试将其集中在一起layout_gravity,但结果始终如下(如果我将应用程序放在手机上,同样的事情)

为什么会这样?我该怎么解决?
我有一个LinearLayout包含了很多TextViews和ImageButtons我要对齐的一些元素向右的,我看了一眼这个和这个,但我不能用自己的技巧,因为我不能改变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
我必须建立如下图所示的布局.主要任务是使文本居中.

我使用这个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.
但是,当广告未显示时 …
我在这个布局上遇到了问题:(
<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没有引力.
<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,我怎样才能在它的右边做右边的按钮家长吗?任何帮助谢谢
我想在我的应用程序中添加导航抽屉.这是代码:
<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,应用程序不会崩溃.我猜这是因为我没有为ListView添加属性android:layout_gravity.
这是一个快照,显示layout_gravity也没有出现在intellisense中
android listview android-appcompat layout-gravity navigation-drawer
我已经在应用程序的主要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但是,我似乎仍然无法使页脚出现在布局的顶部。
任何建议表示赞赏:
<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 android android-layout layout-gravity android-layout-weight
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
我想改变的布局重心的TextView的。
通过 XML,您可以通过android:layout_gravity="value".
我知道为了改变重力本身,你会通过 XML 做android:gravity="value",而在 Java 中你会做textview.setGravity(Gravity.VALUE);
但遗憾的是,没有textview.setLayoutGravity(VALUE);,所以我被卡住了。
谢谢!
我使用 GravityForms 列表字段。我在此列表字段上使用了多个列。我的问题是:对于一列,我可以得到一个带有多个选项的下拉列表吗?
我可以在 PHP 中实现它,但不知道使用 API。事实上,我只想在下拉列表中转换一个文本框字段。你有什么想法吗?
你可以在这里看到我想要的:http : //img11.hostingpics.net/pics/854196c20150309154121.jpg
我正在创建一个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
layout-gravity ×11
android ×10
java ×1
layout ×1
listview ×1
scrollview ×1
wordpress ×1
xml ×1