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,解决。

你既然知道这个控件宽50dp,那就好办了啊!!!
我来给你写个代码吧? 假设这个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) 

代码如下:

 

[java] view plain copy
  1. package com.example.test;  
  2.   
  3. import java.text.SimpleDateFormat;  
  4.   
  5. import org.holoeverywhere.widget.CalendarView;  
  6. import org.holoeverywhere.widget.CalendarView.OnDateChangeListener;  
  7.   
  8. import android.app.Activity;  
  9. import android.os.Bundle;  
  10.   
  11. public class DateActivity extends Activity {  
  12.   
  13.     CalendarView calendar;  
  14.   
  15.     @Override  
  16.     protected void onCreate(Bundle savedInstanceState) {  
  17.         // TODO Auto-generated method stub  
  18.         super.onCreate(savedInstanceState);  
  19.         setContentView(R.layout.date);  
  20.         calendar = (CalendarView) findViewById(R.id.calendar);  
  21.         Long nowTime = calendar.getDate();  
  22.         SimpleDateFormat f = new SimpleDateFormat("yyyy年MM月dd日hh:mm:ss");  
  23.         String time = f.format(nowTime);  
  24.         System.out.println("-------------" + time);  
  25.         calendar.setOnDateChangeListener(new OnDateChangeListener() {  
  26.   
  27.             @Override  
  28.             public void onSelectedDayChange(CalendarView arg0, int arg1,  
  29.                     int arg2, int arg3) {  
  30.                 arg2 = arg2 + 1;  
  31.                 System.out.println("-------------" + arg1 + "-" + arg2 + "-"  
  32.                         + arg3);  
  33.             }  
  34.         });  
  35.   
  36.     }  
  37.   
  38. }  

显示结果:

 

技术分享

技术分享

由bainiu.ltd转载自http://blog.csdn.net/wangjintao1988/article/details/8674408
























以上是关于android控件太长时让控件从左边挤出去而不是从右边的主要内容,如果未能解决你的问题,请参考以下文章

一个水平的LinearLayout中 有2个控件,如何让左边的空间 左对齐 右边的控件右对齐?

Winform中如何让控件置顶

android 不居中界面限制了控件个数,控件太多就满了怎么办,附图,最后一行

Android开发, 布局,控件占用剩余所有宽度。

WPF自定义Button控件

求助:android两个及以上控件点击事件同时监听响应如何实现