为什么我TextView
不对劲?
更新:好吧,现在我不需要设置TextView
为正确.现在非常有趣的是为什么layout_gravity
不按预期工作,即 - 设置View
到父容器内的位置.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
style="@style/activated_item"
android:orientation="horizontal">
<CheckBox
android:id="@+id/star"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="8dp"
style="?android:attr/starStyle"/>
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_marginLeft="8dp"
android:layout_gravity="right" //////// HERE I AM
android:textStyle="bold"
android:textColor="@color/item_text_color"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 我尝试通过Java代码设置我ImageButton
的layout_gravity
,我想要ImageButton
的方式就像下面图像中橙色框架内的方式一样:
在蓝框是垂直LinearLayout
充当"基地"布局,这是我想孩子布局添加到布局.
将橙色和红色都是水平LinearLayout
.
该橙色布局是我想要把路ImageButton
和TextView
,这一次是通过XML建立
该红的布局是我试图模仿结果橙色通过Java代码布局.
这是设置Orange布局的XML代码,这是我想通过Java代码实现的效果:
<!-- Begin the Orange Layout -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/info_left_padding"
android:layout_marginRight="@dimen/info_right_padding" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:minHeight="@dimen/detail_min_line_item_height"
android:text="TextView" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:adjustViewBounds="true"
android:maxHeight="@dimen/abs__action_bar_default_height"
android:scaleType="fitCenter"
android:src="@drawable/navigation_cancel" />
</FrameLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这是设置Red布局的Java代码
int …
Run Code Online (Sandbox Code Playgroud) 在我的水平LinearLayout中,我将一个视图中的重力设置为center_vertical,然后我尝试为第二个视图设置layout_gravity,但该视图与第一个视图中的居中文本对齐!
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:layout_width="100dp"
android:layout_height="200dp"
android:layout_gravity="top"
android:background="@drawable/border"
android:gravity="center_vertical"
android:text="layout_gravity=top gravity=center_vertical" >
</TextView>
<TextView
android:layout_width="100dp"
android:layout_height="200dp"
android:layout_gravity="top"
android:background="@drawable/border"
android:gravity="top"
android:text="layout_gravity=top gravity=top" >
</TextView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这是相同的代码,但垂直布局. 请注意,所需行为在垂直布局中正常工作.
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="200dp"
android:layout_height="100dp"
android:layout_gravity="left"
android:background="@drawable/border"
android:gravity="center_horizontal"
android:text="layout_gravity=left gravity=center_horizontal" >
</TextView>
<TextView
android:layout_width="200dp"
android:layout_height="100dp"
android:layout_gravity="right"
android:background="@drawable/border"
android:gravity="right"
android:text="layout_gravity=right gravity=right" >
</TextView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我可以使用RelativeLayout或者另一个嵌套的LinearLayout来解决问题.但是我问这个问题因为我想知道我是否不理解引力和layout_gravity是如何工作的!我理解这些基本属性是如何工作对我很重要.谢谢
我冒着写一个重复的问题的风险,但当我正在研究另一个SO问题的答案时,我意识到我找不到一个简单的问题和答案,其中包括设置一个重力和layout_gravity LinearLayout
.另外,在谈论一个ViewGroup
而不仅仅是一个观点时,我对它们之间的区别感到困惑.我在回答下面的问题.
以下是我查看的其他一些问题:
我需要在文本右侧放置一个菜单项图标(默认情况下它在左侧),那么如何在 NavigationView 中将菜单项重力更改为右侧?
因为我们不能自定义NavigationView Items,我认为这是不可能的。谁能帮我。
我的菜单 xml 文件是:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:id="@+id/menu_group_2">
<item
android:id="@+id/menu_settings"
android:title="Settings" />
<item
android:id="@+id/menu_about"
android:title="About" />
</group>
</menu>
Run Code Online (Sandbox Code Playgroud)
我在布局中的导航视图是
<android.support.design.widget.NavigationView
android:id="@+id/vNavigation"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="right"
android:background="#ffffff"
app:headerLayout="@layout/view_global_menu_header"
app:itemIconTint="#8b8b8b"
app:itemTextColor="#666666"
android:gravity="right"
app:menu="@menu/drawer_menu" />
Run Code Online (Sandbox Code Playgroud) 我有一个ScrollView
包含一个子元素(由LinearLayout包装的元素).有时候这个孩子的身高是视口高度的一半,有时它会更大.
这里的布局:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:background="@color/some_background">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/fond_consult"
android:orientation="vertical"
android:weightSum="2">
... Some TextViews and ImageViews...
</LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
当屏幕大小和密度较低时,子项在ScrollView中正确显示,但是当在较大的屏幕(如HDPI和XHDPI)上呈现此活动时,内容将放置在ScrollView的顶部.
有没有办法为ScrollView的唯一子项设置重力,或者如果设备屏幕大于孩子的高度,我是否必须删除scrollView?
我想在这个图像上水平和垂直地居中L3,你能帮助我使用布局结构吗?右侧是菜单的当前结构.谢谢.
这是layout.xml代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/BaseLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/mainmenu_background" >
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitXY"
android:src="@drawable/main_menu_background" />
<LinearLayout
android:id="@+id/l1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- Top menu -->
<LinearLayout
android:id="@+id/l2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RelativeLayout
android:id="@+id/TopMenuHolder"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/main_menu_background_header"
android:gravity="left"
android:orientation="horizontal"
android:visibility="visible" >
<ImageView
android:id="@+id/logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:src="@drawable/logo" />
<LinearLayout
android:id="@+id/TopRightButtonsHolder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:orientation="horizontal"
android:visibility="visible" >
<RelativeLayout
android:id="@+id/sinscrire"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageButton
android:id="@+id/login_registerbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:background="@color/transparent"
android:scaleType="fitXY"
android:src="@drawable/main_menu_sinscrire_button" />
<TextView
android:id="@+id/sinscrire_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" …
Run Code Online (Sandbox Code Playgroud) 我的列表视图行的xml代码是
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="5"
android:orientation="vertical" >
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp" />
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="2"
android:gravity="center" >
<ImageView
android:id="@+id/iv_image"
android:layout_width="50dp"
android:layout_height="40dp"
android:background="@drawable/app_icon_17"
android:contentDescription="@string/empty" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="2"
android:gravity="center" >
<Button
android:id="@+id/btn_delete"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/btn_delete_new"
android:focusable="false" />
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我希望id为btn_delete的最后一个按钮保持右对齐.并且它在设计时以"图形布局"的形式显示.但是当我运行它时,在模拟器上它不起作用.
看输出:
那么为什么删除按钮没有正确对齐?
android gravity android-layout android-linearlayout layout-gravity
我试图在水平方向的线性布局中使用textview和按钮.textview应出现在开头,按钮应出现在结尾处.我认为将重力直接按到按钮就可以了,但按钮不会移动到右侧.我在想我是否应该使用相对布局?
<\LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/productPriceTextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Rs 3579.0"
/>
<Button
android:id="@+id/buyNowButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="Buy Now" />
<\/LinearLayout>
Run Code Online (Sandbox Code Playgroud) layout android android-linearlayout layout-gravity android-relativelayout
我希望下图中的单选按钮center
对齐.我使用了重力,但它不起作用.
<RadioGroup
android:id="@+id/qualityRadioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="5"
>
<RadioButton
android:id="@+id/qty1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:layout_gravity="center_vertical"
android:button="@drawable/radio_button_selector"
android:checked="false"
android:tag="1"/>
<RadioButton
android:id="@+id/qty2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="@dimen/s5dp"
android:button="@drawable/radio_button_selector"
android:tag="2"
/>
<RadioButton
android:id="@+id/qty3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="@dimen/s5dp"
android:button="@drawable/radio_button_selector"
android:tag="3"
/>
<RadioButton
android:id="@+id/qty4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="@dimen/s5dp"
android:button="@drawable/radio_button_selector"
android:tag="4"
/>
<RadioButton
android:id="@+id/qty5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="@dimen/s5dp"
android:button="@drawable/radio_button_selector"
android:checked="false"
android:tag="5"/>
</RadioGroup>
Run Code Online (Sandbox Code Playgroud)
如果我在线性布局中添加单选按钮而不是将其对齐到中心,但是在这种情况下无线电组功能不起作用.
我想要中心对齐的单选按钮以及无线电组功能,即一次只能选择一个项目.