当前位置:首页 » 安卓系统 » androidlinearlayout

androidlinearlayout

发布时间: 2022-09-18 16:58:06

㈠ android中LinearLayout报错怎么办

  1. 自定义控件是 xml 布局文件中根元素(或父元素)使用了 android:clickable 属性,在设置 View.OnClickLinstener 时无法响应onClick 事件:

  2. 删除 android:clickable 属性,如果需要使用这个属性,在代码中设置:

  3. this.setClickable(true);

  4. 再次监听 onClick 事件,正常。

  5. 其实不止是 LinearLayout,像在RelativeLayout中指定android:clickable 属性,同样会使 onClick 事件无法被监听。

㈡ android布局控件之LinearLayout详解

Android布局控件之LinearLayout详解

LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失。因此一个垂直列表的每一行只会有一个widget或者是container,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子控件的高度加上边框高度)。LinearLayout保持其所包含的widget或者是container之间的间隔以及互相对齐(相对一个控件的右对齐、中间对齐或者左对齐)。

xml属性

android:baselineAligned:是否允许用户调整它内容的基线。

android:baselineAlignedChildIndex:当一个线性布局与另一个布局是按基线对齐的一部分,它可以指定其内容的基线对齐方式。

android:gravity:指定如何在该对象中放置此对象的内容(x/y坐标值)。

android:orientation:设置它内容的对其方向(横向/竖向)。

gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思。

android:layout_gravity 和 android:gravity 的区别

从名字上可以看到,android:gravity是对元素本身说的,元素本身的文本显示在什么地方靠着换个属性设置,不过不设置默认是在左侧的。

android:layout_gravity是相对与它的父元素说的,说明元素显示在父元素的什么位置。

比如说button:android:layout_gravity 表示按钮在界面上的位置。 android:gravity表示button上的字在button上的位置。

可选值

这两个属性可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。

而且这些属性是可以多选的,用“|”分开。

默认这个的值是:Gravity.LEFT

LinearLayout还支持为其包含的widget或者是container指定填充权值。好处就是允许其包含的widget或者是container可以填充屏幕上的剩余空间。这也避免了在一个大屏幕中,一串widgets或者是containers挤成一堆的情况,而是允许他们放大填充空白。剩余的空间会按这些widgets或者是containers指定的权值比例分配屏幕。默认的 weight 值为0,表示按照widgets或者是containers实际大小来显示,若高于0的值,则将Container剩余可用空间分割,分割大小具体取决于每一个widget或者是container的layout_weight及该权值在所有widgets或者是containers中的比例。例如,如果有三个文本框,其中两个指定的权值为1,那么,这两个文本框将等比例地放大,并填满剩余的空间,而第三个文本框不会放大,按实际大小来显示。如果前两个文本框的取值一个为2,一个为1,显示第三个文本框后剩余的空间的2/3给权值为2的,1/3大小给权值为1的。也就是权值越大,重要度越大。

如果LinearLayout包含子LinearLayout,子LinearLayout之间的权值越大的,重要度则越小。如果有LinearLayout A包含LinearLayout C,D,C的权值为2,D的权值为1,则屏幕的2/3空间分给权值为1的D,1/3分给权值为2的C。在LinearLayout嵌套的情况下,子LinearLayout必须要设置权值,否则默认的情况是未设置权值的子LinearLayout占据整个屏幕

㈢ Android LinearLayout view 置底

Button置底这个方法还算简单,直接将两个Button包裹于一个LinearLayout,然后设置这个LinearLayout的属性android:layout_alignParentBottom为true即可。
XML代码如下:

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

<!-- Button 置底 -->
<LinearLayout android:id="@+id/test_bottom_buttons"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="horizontal" android:layout_alignParentBottom="true">

<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="确定"></Button>

<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="取消"></Button>

</LinearLayout>
</RelativeLayout>
接下来就是要把剩余的空间用一个ListView进行填充了。

最开始bill臆断地认为,只要在包裹Buttons的LinearLayout代码上方加上一个ListView就OK了,这是我最开始错误的xml布局文件:

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

<ListView android:id="@+id/lv_test" android:layout_width="fill_parent"
android:layout_height="fill_parent">
</ListView>

<!-- Button 置底 -->
<LinearLayout android:id="@+id/test_bottom_buttons"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="horizontal" android:layout_alignParentBottom="true">

<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="确定"></Button>

<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="取消"></Button>

</LinearLayout>

</RelativeLayout>

㈣ android linearlayout 的属性怎么描述

FrameLayout是五大布局中最简单的一个布局,在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。显示效果如下,第一个TextView被第二个TextView完全遮挡,第三个TextView遮挡了第二个TextView的部分位置。LinearLayout按照垂直或者水平的顺序依次排列子元素,每一个子元素都位于前一个元素之后。如果是垂直排列,那么将是一个N行单列的结构,每一行只会有一个元素,而不论这个元素的宽度为多少;如果是水平排列,那么将是一个单行N列的结构。如果搭建两行两列的结构,通常的方式是先垂直排列两个元素,每一个元素里再包含一个LinearLayout进行水平排列。LinearLayout中的子元素属性android:layout_weight生效,它用于描述该子元素在剩余空间中占有的大小比例。加入一行只有一个文本框,那么它的默认值就为0,如果一行中有两个等长的文本框,那么他们的android:layout_weight值可以是同为1。如果一行中有两个不等长的文本框,那么他们的android:layout_weight值分别为1和2,那么第一个文本框将占据剩余空间的三分之二,第二个文本框将占据剩余空间中的三分之一。android:layout_weight遵循数值越小,重要度越高的原则。

㈤ android LinearLayout怎么让它在窗口的底部

首先要固定底部即要相于整界面底部所外面布局要用RelativeLayoutinclude添加layoutwidthheight值再添加android:layout_alignParentBottom="true"行注意LinearLayout使用种相位置设置则效

㈥ android linearlayout布局怎么设置在顶端

1、如果是LinearLayout内容在顶端,可以添加android:layout_gravidy="top"属性,如下:

1
2
3
4
5

<LinearLayout
android:layout_gravidy="top"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>

2、关于android:layout_gravidy和android:gravidy的区别,可以查看TeachCourse,希望可以帮助到!

㈦ android设置linearlayout布局的背景颜色,怎么动态改变背景颜色

1、开始打开Android IDE,这里以常用的Android Studio软件的3.2版本为例,然后可以新建一个工程项目,也可以使用当前已经存在的工程,点击后等待整个项目加载完毕再进行后续的操作。

㈧ Android如何自定义LinearLayout

LinearLayout自定义方法有多种:

1、自定义xml布局,然后加载布局,自定义一个View继承LinearLayout

2、在自定义控件中声明它的所有子元素,然后在Layout文件中像使用LinearLayout一样去进行布局。


第二种比较烦 ,它需要在Layout文件中定义好子元素之后,要在代码 onFinishInflate() 进行匹配子元素。


我就说说加载布局文件的方法吧。

首先:定义好layout文件

java"><?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="

android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">

<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingBottom="5dip"
android:paddingLeft="40dip"
android:paddingTop="5dip"
android:src="@drawable/right_icon"/>

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="8dip"
android:text="主题"
android:textColor="#000000"/>
<LinearLayout
android:layout_width="100dp"
android:layout_height="fill_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingBottom="5dip"
android:paddingLeft="12dip"
android:paddingTop="5dip"
android:src="@drawable/home_icon"/>
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingBottom="5dip"
android:paddingLeft="12dip"
android:paddingTop="5dip"
android:src="@drawable/add_icon"/>
</LinearLayout>

</LinearLayout>
{

privateImageViewimageView,iv_home,iv_add;
privateTextViewtextView;

publicMyLinearLayout(Contextcontext){
super(context);
//TODOAuto-generatedconstructorstub
}
publicMyLinearLayout(Contextcontext,AttributeSetattrs){
super(context,attrs);
//TODOAuto-generatedconstructorstub
LayoutInflaterinflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.actionbar,this);
imageView=(ImageView)findViewById(R.id.imageView1);
iv_home=(ImageView)findViewById(R.id.imageView2);
iv_add=(ImageView)findViewById(R.id.imageView3);
textView=(TextView)findViewById(R.id.textView1);


}

/**
*设置图片资源
*/
publicvoidsetImageResource(intresId){
imageView.setImageResource(resId);
}

/**
*设置显示的文字
*/
publicvoidsetTextViewText(Stringtext){
textView.setText(text);
}

}
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="

android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">

<cn.com.demo.view.MyLinearLayout
android:id="@+id/ll_actionbar"
android:layout_height="fill_parent<spanstyle="font-family:Tahoma,'MicrosoftYahei',Simsun;">"</span>
android:layout_width="wrap_content"
android:background="@drawable/bg"
/>
</LinearLayout>

接下来自定义一个MyLinearLayout继承LinearLayout,并且加载刚刚写好的layout文件。(比如http://www.tiecou.com)

{
privateImageViewimageView,iv_home,iv_add;
privateTextViewtextView;
publicMyLinearLayout(Contextcontext){
super(context);
//TODOAuto-generatedconstructorstub
}
publicMyLinearLayout(Contextcontext,AttributeSetattrs){
super(context,attrs);
//TODOAuto-generatedconstructorstub
LayoutInflaterinflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.actionbar,this);
imageView=(ImageView)findViewById(R.id.imageView1);
iv_home=(ImageView)findViewById(R.id.imageView2);
iv_add=(ImageView)findViewById(R.id.imageView3);
textView=(TextView)findViewById(R.id.textView1);
}
/**
*设置图片资源
*/
publicvoidsetImageResource(intresId){
imageView.setImageResource(resId);
}

/**
*设置显示的文字
*/
publicvoidsetTextViewText(Stringtext){
textView.setText(text);
}
}

最后,要的时候使用定义好的MyLinearLayout控件。

㈨ Android布局文件LinearLayout报错!

LinearLayout报错一般是属性设置错误。该题的错误是违反了android布局文件跟节点的布局只能有一个,这里同时存在两个linearlayout。

解决方式:

把两个布局文件合成一个,把水平布局的LinearLayout嵌套到垂直布局的LinearLayout中。

修改如下:

<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
。。。一堆元素
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
。。。一堆元素
</LinearLayout>
</LinearLayout>

㈩ Android怎么让LinearLayout的两个按钮之间存在一些间隔

可以按照以下代码进行尝试:

<?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="wrap_content"
android:orientation="vertical"
android:padding="10dp"
>

<Button
android:id="@+id/btnAction1"
android:layout_width="fill_parent"

android:layout_height="wrap_content"
android:background="@drawable/cool_button"
android:text = "HiText1"
/>

<Button android:layout_marginTop="50dp"
android:id="@+id/btnAction2"
android:layout_width="fill_parent"

android:layout_height="wrap_content"
android:background="@drawable/cool_button"

android:text="HiText2"
android:layout_below="@id/btnAction1"

/>

</LinearLayout>

(10)androidlinearlayout扩展阅读

若设置一个控件为android:graviity="center|top" 那么这个控件中的子控件位于该控件的中心位置靠上的部位。

若设置一个控件为android:layout_gravity="center|top" 那么这个控件位于他父控件的中心位置靠近上的部位,是对这个控件本身位置的操作。

android:layout_marginBottom:离某元素底边缘的距离

android:layout_marginLeft:离某元素左边缘的距离

android:layout_marginRight:离某元素右边缘的距离

android:layout_marginTop:离某元素上边缘的距离

热点内容
python3哪个版本好 发布:2025-01-11 05:07:29 浏览:864
手机怎么访问外网 发布:2025-01-11 05:07:27 浏览:532
财务信息服务器搭建 发布:2025-01-11 04:48:09 浏览:875
算法实现过程 发布:2025-01-11 04:43:45 浏览:457
瞄准下载ftp 发布:2025-01-11 04:43:44 浏览:573
校园电影脚本 发布:2025-01-11 04:32:08 浏览:437
现在手机配置最高是什么 发布:2025-01-11 04:30:37 浏览:549
学信网默认密码是多少 发布:2025-01-11 04:25:45 浏览:530
jdbctemplate调用存储过程 发布:2025-01-11 04:25:41 浏览:256
我的世界怎么不用钱创建服务器 发布:2025-01-11 04:25:39 浏览:283