android控件太长时让控件从左边挤出去而不是从右边
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android控件太长时让控件从左边挤出去而不是从右边相关的知识,希望对你有一定的参考价值。
在一行增加控件(lines="1"),假设一个LinearLayout内还包含2个LinearLayout,当图标太多,会发生挤出现象,右边的LinearLayout会先被挤出右边,那么现在应该怎么设置才能让左边的LinearLayout先被挤出左边而右边的LinearLayout始终保持右边和屏幕对齐?
示例布局:
<?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">
<LinearLayout android:id="@+id/l1" android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView android:layout_width="fill_parent" android:id="@+id/text"
android:lines="1" android:text="1111111111111111111111111111111111111"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout android:layout_toRightOf="@+id/l1"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:text="222222222222222222222222222222ha"
android:id="@+id/Button01" android:lines="1" android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>
</RelativeLayout>
使用relativelayout框住两个layout,靠边的添加属性android layout_alignparentRight="true",另一个添加属性toleftof靠边那个的id,解决。
我来给你写个代码吧? 假设这个Button是你的控件!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!-- 这是父布局 -->
<LinearLayout
android:layout_width="fill_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal" >
<!-- 这个button是你的控件 -->
<Button
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="你的控件"/>
<!-- 在你的控件后再添加一个控件,50dp宽,显示为invisible -->
<View
android:visibility="invisible"
android:layout_width="50dp"
android:layout_height="1dp"
android:background="#00000000">
</LinearLayout>
看代码: 首先因为父布局是水平的,而且有个重要的属性:gravity="center_horizontal"。所以在你的控件后再添一个visibility="invisible"的控件,同宽50dp,就把你的控件顶到前面去了,从屏幕上看起来,就是你的控件右边处于屏幕中间了!而且是不管怎么换分辨率,都始终处于屏幕中间!
我的代码你可以直接复制到你程序中做试验看效果的。
同为代码工人,握手握手!纯手打的代码,非复制粘贴流。欢迎追问,也谢谢采纳答案。 参考技术A 在一行增加控件(lines="1"),假设一个LinearLayout内还包含2个LinearLayout,当图标太多,会发生挤出现象,右边的LinearLayout会先被挤出右边,那么现在应该怎么设置才能让左边的LinearLayout先被挤出左边而右边的LinearLayout始终保持右边和屏幕对齐?
示例布局:
<?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">
<LinearLayout android:id="@+id/l1" android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView android:layout_width="fill_parent" android:id="@+id/text"
android:lines="1" android:text="1111111111111111111111111111111111111"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout android:layout_toRightOf="@+id/l1"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:text="222222222222222222222222222222ha"
android:id="@+id/Button01" android:lines="1" android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>
</RelativeLayout>使用relativelayout框住两个layout,靠边的添加属性android layout_alignparentRight="true",另一个添加属性toleftof靠边那个的id,解决。 参考技术B 我觉得 你设置权值最好....
Android控件之CalendarView 日历对话框
在Android 3.0中新增的日历视图控件可以显示网格状的日历内容,android.widget.CalendarView是从android.widget.FrameLayout中继承。
CalendarView 类提供了基本的日历设置方法,
long getDate() 获取从1970年,1月1日,0点0分0秒到现在的毫秒数,因为返回是long型最终只能截止到2038年
int getFirstDayOfWeek() //获取当天是本周的第几天,Android123提示返回的定义在java.util.Calendar类中,比如Calendar.Monday为星期一,定义值为2。
long getMaxDate() //获取CalendarView支持1970年到那天的最大天数
long getMinDate() //获取CalendarView支持1970年到那天的最小天数
boolean getShowWeekNumber() //获取是否显示星期号
boolean isEnabled() //是否显示本日历视图
public void setDate
(long date, boolean animate, boolean center) //设置选择日期到1970年的描述
void setDate(long date) //设置选择的日期描述到1970年
void setEnabled(boolean enabled) //设置是否启用视图
void setFirstDayOfWeek(int firstDayOfWeek) //设置本周起始天数
void setMaxDate(long maxDate)
void setMinDate(long minDate)
代码如下:
- package com.example.test;
- import java.text.SimpleDateFormat;
- import org.holoeverywhere.widget.CalendarView;
- import org.holoeverywhere.widget.CalendarView.OnDateChangeListener;
- import android.app.Activity;
- import android.os.Bundle;
- public class DateActivity extends Activity {
- CalendarView calendar;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.date);
- calendar = (CalendarView) findViewById(R.id.calendar);
- Long nowTime = calendar.getDate();
- SimpleDateFormat f = new SimpleDateFormat("yyyy年MM月dd日hh:mm:ss");
- String time = f.format(nowTime);
- System.out.println("-------------" + time);
- calendar.setOnDateChangeListener(new OnDateChangeListener() {
- @Override
- public void onSelectedDayChange(CalendarView arg0, int arg1,
- int arg2, int arg3) {
- arg2 = arg2 + 1;
- System.out.println("-------------" + arg1 + "-" + arg2 + "-"
- + arg3);
- }
- });
- }
- }
显示结果:
由bainiu.ltd转载自http://blog.csdn.net/wangjintao1988/article/details/8674408
以上是关于android控件太长时让控件从左边挤出去而不是从右边的主要内容,如果未能解决你的问题,请参考以下文章
一个水平的LinearLayout中 有2个控件,如何让左边的空间 左对齐 右边的控件右对齐?