Android移动布局分隔符
嗨,伙计们, 我已经为我的平板电脑创建了一个简单的应用程序,该应用程序是一个主/详细布局,仅在横向模式下工作 线性布局中有两个片段: 第一个片段包含一个ListView 第二个片段包含一个TextView 我想在两个片段之间移动分隔符,以便在触摸分隔符时调整大小/放大,这是否可能与布局属性o参数有关,或者我需要开发代码 我无法添加图像示例,但如果在横向模式下打开电子邮件应用程序,则可以在列表电子邮件和所选邮件之间移动分隔符 我已经为平板电脑10.1构建了横向模式的解决方案:Android移动布局分隔符,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,嗨,伙计们, 我已经为我的平板电脑创建了一个简单的应用程序,该应用程序是一个主/详细布局,仅在横向模式下工作 线性布局中有两个片段: 第一个片段包含一个ListView 第二个片段包含一个TextView 我想在两个片段之间移动分隔符,以便在触摸分隔符时调整大小/放大,这是否可能与布局属性o参数有关,或者我需要开发代码 我无法添加图像示例,但如果在横向模式下打开电子邮件应用程序,则可以在列表电子邮件和所选邮件之间移动分隔符 我已经为平板电脑10.1构建了横向模式的解决方案: <Relati
<RelativeLayout 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"
android:id="@+id/rootView"
tools:context="com.example.moveview.MainActivity"
android:animateLayoutChanges="true">
<LinearLayout
android:id="@+id/layout1"
android:layout_width="300dp"
android:layout_height="match_parent"
android:background="@color/red">
</LinearLayout>
<!--Separator is added dinamic in Activity-->
<LinearLayout
android:id="@+id/layout3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/green"
android:layout_marginLeft="310dp">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout></RelativeLayout>
<resources>
<color name="red">#d81e1e</color>
<color name="white">#ffffff</color>
<color name="green">#00ab14</color>
<color name="yellow">#FFFF00</color>
<color name="gray">#7A7A7A</color>
<color name="light_blue">#3399FF</color>
package com.example.moveview;
import android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
public class MainActivity extends Activity {
int disWidth;
int disHeight;
View separator;
ViewGroup root_view;
private int _xDelta;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//SCREEN DIMENSION
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
disWidth = metrics.widthPixels;
disHeight = metrics.heightPixels;
root_view = (ViewGroup)findViewById(R.id.rootView);
//CREATION VIEW SEPARATOR
separator = new View(this);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(10, 700);
layoutParams.leftMargin = 300;
layoutParams.topMargin = 0;
separator.setLayoutParams(layoutParams);
separator.setBackgroundColor(getResources().getColor(R.color.gray));
separator.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
drag(event, v);
return true;
}
});
root_view.addView(separator);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void drag(MotionEvent event, View view) {
final int X = (int) event.getRawX();
LinearLayout layout1 = (LinearLayout) findViewById(R.id.layout1);
LinearLayout layout3 = (LinearLayout) findViewById(R.id.layout3);
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
view.setBackgroundColor(getResources().getColor(R.color.light_blue));
_xDelta = X - lParams.leftMargin;
break;
case MotionEvent.ACTION_UP:
view.setBackgroundColor(getResources().getColor(R.color.gray));
break;
case MotionEvent.ACTION_POINTER_DOWN:
break;
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
layoutParams.leftMargin = X - _xDelta;
layoutParams.topMargin = 0;
//MIN-MAX MOVE
if(layoutParams.leftMargin < 50){
layoutParams.leftMargin = 50;
}
if(layoutParams.leftMargin > disWidth -200){
layoutParams.leftMargin = disWidth -200;
}
//RIDIMENSION AND ALIGN LEFT/RIGHT VIEW
RelativeLayout.LayoutParams layoutParams1 = (RelativeLayout.LayoutParams) layout1.getLayoutParams();
RelativeLayout.LayoutParams layoutParams3 = (RelativeLayout.LayoutParams) layout3.getLayoutParams();
layoutParams1.width = layoutParams.leftMargin;
layoutParams3.width = disWidth-layoutParams.leftMargin - layoutParams.width;
layoutParams3.leftMargin = layoutParams.leftMargin + layoutParams.width;
layout1.setLayoutParams(layoutParams1);
layout3.setLayoutParams(layoutParams3);
break;
}
root_view.invalidate();
}
}
活动\u main.xml:
<RelativeLayout 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"
android:id="@+id/rootView"
tools:context="com.example.moveview.MainActivity"
android:animateLayoutChanges="true">
<LinearLayout
android:id="@+id/layout1"
android:layout_width="300dp"
android:layout_height="match_parent"
android:background="@color/red">
</LinearLayout>
<!--Separator is added dinamic in Activity-->
<LinearLayout
android:id="@+id/layout3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/green"
android:layout_marginLeft="310dp">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout></RelativeLayout>
<resources>
<color name="red">#d81e1e</color>
<color name="white">#ffffff</color>
<color name="green">#00ab14</color>
<color name="yellow">#FFFF00</color>
<color name="gray">#7A7A7A</color>
<color name="light_blue">#3399FF</color>
package com.example.moveview;
import android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
public class MainActivity extends Activity {
int disWidth;
int disHeight;
View separator;
ViewGroup root_view;
private int _xDelta;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//SCREEN DIMENSION
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
disWidth = metrics.widthPixels;
disHeight = metrics.heightPixels;
root_view = (ViewGroup)findViewById(R.id.rootView);
//CREATION VIEW SEPARATOR
separator = new View(this);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(10, 700);
layoutParams.leftMargin = 300;
layoutParams.topMargin = 0;
separator.setLayoutParams(layoutParams);
separator.setBackgroundColor(getResources().getColor(R.color.gray));
separator.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
drag(event, v);
return true;
}
});
root_view.addView(separator);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void drag(MotionEvent event, View view) {
final int X = (int) event.getRawX();
LinearLayout layout1 = (LinearLayout) findViewById(R.id.layout1);
LinearLayout layout3 = (LinearLayout) findViewById(R.id.layout3);
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
view.setBackgroundColor(getResources().getColor(R.color.light_blue));
_xDelta = X - lParams.leftMargin;
break;
case MotionEvent.ACTION_UP:
view.setBackgroundColor(getResources().getColor(R.color.gray));
break;
case MotionEvent.ACTION_POINTER_DOWN:
break;
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
layoutParams.leftMargin = X - _xDelta;
layoutParams.topMargin = 0;
//MIN-MAX MOVE
if(layoutParams.leftMargin < 50){
layoutParams.leftMargin = 50;
}
if(layoutParams.leftMargin > disWidth -200){
layoutParams.leftMargin = disWidth -200;
}
//RIDIMENSION AND ALIGN LEFT/RIGHT VIEW
RelativeLayout.LayoutParams layoutParams1 = (RelativeLayout.LayoutParams) layout1.getLayoutParams();
RelativeLayout.LayoutParams layoutParams3 = (RelativeLayout.LayoutParams) layout3.getLayoutParams();
layoutParams1.width = layoutParams.leftMargin;
layoutParams3.width = disWidth-layoutParams.leftMargin - layoutParams.width;
layoutParams3.leftMargin = layoutParams.leftMargin + layoutParams.width;
layout1.setLayoutParams(layoutParams1);
layout3.setLayoutParams(layoutParams3);
break;
}
root_view.invalidate();
}
}
values/color.xml:
<RelativeLayout 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"
android:id="@+id/rootView"
tools:context="com.example.moveview.MainActivity"
android:animateLayoutChanges="true">
<LinearLayout
android:id="@+id/layout1"
android:layout_width="300dp"
android:layout_height="match_parent"
android:background="@color/red">
</LinearLayout>
<!--Separator is added dinamic in Activity-->
<LinearLayout
android:id="@+id/layout3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/green"
android:layout_marginLeft="310dp">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout></RelativeLayout>
<resources>
<color name="red">#d81e1e</color>
<color name="white">#ffffff</color>
<color name="green">#00ab14</color>
<color name="yellow">#FFFF00</color>
<color name="gray">#7A7A7A</color>
<color name="light_blue">#3399FF</color>
package com.example.moveview;
import android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
public class MainActivity extends Activity {
int disWidth;
int disHeight;
View separator;
ViewGroup root_view;
private int _xDelta;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//SCREEN DIMENSION
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
disWidth = metrics.widthPixels;
disHeight = metrics.heightPixels;
root_view = (ViewGroup)findViewById(R.id.rootView);
//CREATION VIEW SEPARATOR
separator = new View(this);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(10, 700);
layoutParams.leftMargin = 300;
layoutParams.topMargin = 0;
separator.setLayoutParams(layoutParams);
separator.setBackgroundColor(getResources().getColor(R.color.gray));
separator.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
drag(event, v);
return true;
}
});
root_view.addView(separator);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void drag(MotionEvent event, View view) {
final int X = (int) event.getRawX();
LinearLayout layout1 = (LinearLayout) findViewById(R.id.layout1);
LinearLayout layout3 = (LinearLayout) findViewById(R.id.layout3);
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
view.setBackgroundColor(getResources().getColor(R.color.light_blue));
_xDelta = X - lParams.leftMargin;
break;
case MotionEvent.ACTION_UP:
view.setBackgroundColor(getResources().getColor(R.color.gray));
break;
case MotionEvent.ACTION_POINTER_DOWN:
break;
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
layoutParams.leftMargin = X - _xDelta;
layoutParams.topMargin = 0;
//MIN-MAX MOVE
if(layoutParams.leftMargin < 50){
layoutParams.leftMargin = 50;
}
if(layoutParams.leftMargin > disWidth -200){
layoutParams.leftMargin = disWidth -200;
}
//RIDIMENSION AND ALIGN LEFT/RIGHT VIEW
RelativeLayout.LayoutParams layoutParams1 = (RelativeLayout.LayoutParams) layout1.getLayoutParams();
RelativeLayout.LayoutParams layoutParams3 = (RelativeLayout.LayoutParams) layout3.getLayoutParams();
layoutParams1.width = layoutParams.leftMargin;
layoutParams3.width = disWidth-layoutParams.leftMargin - layoutParams.width;
layoutParams3.leftMargin = layoutParams.leftMargin + layoutParams.width;
layout1.setLayoutParams(layoutParams1);
layout3.setLayoutParams(layoutParams3);
break;
}
root_view.invalidate();
}
}
#d81e1e
#ffffff
#00ab14
#FFFF00
#7A7A
#3399FF
MainActivity.java:
<RelativeLayout 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"
android:id="@+id/rootView"
tools:context="com.example.moveview.MainActivity"
android:animateLayoutChanges="true">
<LinearLayout
android:id="@+id/layout1"
android:layout_width="300dp"
android:layout_height="match_parent"
android:background="@color/red">
</LinearLayout>
<!--Separator is added dinamic in Activity-->
<LinearLayout
android:id="@+id/layout3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/green"
android:layout_marginLeft="310dp">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout></RelativeLayout>
<resources>
<color name="red">#d81e1e</color>
<color name="white">#ffffff</color>
<color name="green">#00ab14</color>
<color name="yellow">#FFFF00</color>
<color name="gray">#7A7A7A</color>
<color name="light_blue">#3399FF</color>
package com.example.moveview;
import android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
public class MainActivity extends Activity {
int disWidth;
int disHeight;
View separator;
ViewGroup root_view;
private int _xDelta;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//SCREEN DIMENSION
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
disWidth = metrics.widthPixels;
disHeight = metrics.heightPixels;
root_view = (ViewGroup)findViewById(R.id.rootView);
//CREATION VIEW SEPARATOR
separator = new View(this);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(10, 700);
layoutParams.leftMargin = 300;
layoutParams.topMargin = 0;
separator.setLayoutParams(layoutParams);
separator.setBackgroundColor(getResources().getColor(R.color.gray));
separator.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
drag(event, v);
return true;
}
});
root_view.addView(separator);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void drag(MotionEvent event, View view) {
final int X = (int) event.getRawX();
LinearLayout layout1 = (LinearLayout) findViewById(R.id.layout1);
LinearLayout layout3 = (LinearLayout) findViewById(R.id.layout3);
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
view.setBackgroundColor(getResources().getColor(R.color.light_blue));
_xDelta = X - lParams.leftMargin;
break;
case MotionEvent.ACTION_UP:
view.setBackgroundColor(getResources().getColor(R.color.gray));
break;
case MotionEvent.ACTION_POINTER_DOWN:
break;
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
layoutParams.leftMargin = X - _xDelta;
layoutParams.topMargin = 0;
//MIN-MAX MOVE
if(layoutParams.leftMargin < 50){
layoutParams.leftMargin = 50;
}
if(layoutParams.leftMargin > disWidth -200){
layoutParams.leftMargin = disWidth -200;
}
//RIDIMENSION AND ALIGN LEFT/RIGHT VIEW
RelativeLayout.LayoutParams layoutParams1 = (RelativeLayout.LayoutParams) layout1.getLayoutParams();
RelativeLayout.LayoutParams layoutParams3 = (RelativeLayout.LayoutParams) layout3.getLayoutParams();
layoutParams1.width = layoutParams.leftMargin;
layoutParams3.width = disWidth-layoutParams.leftMargin - layoutParams.width;
layoutParams3.leftMargin = layoutParams.leftMargin + layoutParams.width;
layout1.setLayoutParams(layoutParams1);
layout3.setLayoutParams(layoutParams3);
break;
}
root_view.invalidate();
}
}
package com.example.moveview;
导入android.app.Activity;
导入android.os.Bundle;
导入android.util.DisplayMetrics;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.MotionEvent;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.LinearLayout;
导入android.widget.RelativeLayout;
公共类MainActivity扩展了活动{
int-disWidth;
八分之一;
视图分隔符;
视图组根视图;
私人国际电信公司;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//屏幕尺寸
DisplayMetrics=新的DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(度量);
disWidth=metrics.widthPixels;
disHeight=metrics.heightPixels;
根视图=(视图组)findViewById(R.id.rootView);
//创建视图分隔符
分隔符=新视图(此);
RelativeLayout.LayoutParams LayoutParams=新的RelativeLayout.LayoutParams(10700);
layoutParams.leftMargin=300;
layoutParams.topMargin=0;
separator.setLayoutParams(layoutParams);
separator.setBackgroundColor(getResources().getColor(R.color.gray));
separator.setOnTouchListener(新视图.OnTouchListener(){
@凌驾
公共布尔onTouch(视图v,运动事件){
//TODO自动生成的方法存根
拖动(事件,v);
返回true;
}
});
root_view.addView(分隔符);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
int id=item.getItemId();
if(id==R.id.action\u设置){
返回true;
}
返回super.onOptionsItemSelected(项目);
}
公共无效拖动(MotionEvent、View){
final int X=(int)event.getRawX();
LinearLayout layout1=(LinearLayout)findViewById(R.id.layout1);
LinearLayout layout3=(LinearLayout)findViewById(R.id.layout3);
开关(event.getAction()&MotionEvent.ACTION\u掩码){
case MotionEvent.ACTION\u DOWN:
RelativeLayout.LayoutParams lParams=(RelativeLayout.LayoutParams)视图。getLayoutParams();
view.setBackgroundColor(getResources().getColor(R.color.light_blue));
_xDelta=X-lParams.leftMargin;
打破
case MotionEvent.ACTION\u UP:
view.setBackgroundColor(getResources().getColor(R.color.gray));
打破
case MotionEvent.ACTION\u指针\u向下:
打破
case MotionEvent.ACTION\u指针\u向上:
打破
case MotionEvent.ACTION\u移动:
RelativeLayout.LayoutParams LayoutParams=(RelativeLayout.LayoutParams)视图。getLayoutParams();
layoutParams.leftMargin=X-xDelta;
layoutParams.topMargin=0;
//最小-最大移动
如果(layoutParams.leftMargin<50){
layoutParams.leftMargin=50;
}
if(layoutParams.leftMargin>disWidth-200){
layoutParams.leftMargin=disWidth-200;
}
//Rid左/右视图的尺寸标注和对齐
RelativeLayout.LayoutParams layoutParams1=(RelativeLayout.LayoutParams)layout1.getLayoutParams();
RelativeLayout.LayoutParams layoutParams3=(RelativeLayout.LayoutParams)layout3.getLayoutParams();
layoutParams1.width=layoutParams.leftMargin;
layoutParams3.width=disWidth-layoutParams.leftMargin-layoutParams.width;
layoutParams3.leftMargin=layoutParams.leftMargin+layoutParams.width;
layout1.setLayoutParams(layoutParams1);
layout3.setLayoutParams(layoutParams3);
打破
}
root_view.invalidate();
}
}
我认为您需要使用相对布局,但现在我不记得是否可以使用带有片段的相对布局。。。
如果可以更改相对布局的线性布局,请使用以下代码:
<ListView>
android:layout_above="@+id/LTextView"
android:layout_marginBottom="10dp"
</ListView>
android:layout_over=“@+id/LTextView”
android:layout_marginBottom=“10dp”
其他快速解决方案您可以在listview和textview之间放置其他线性布局,宽度如您所需,我认为最好的模式是(如果第一种模式不起作用),使用以下结构:
<RelativeLayout>
<FrameLayout>
<Fragment><ListView></Fragment>
</FrameLayout>
<FrameLayout>
<Fragment><ListView></Fragment>
</FrameLayout>
</RelativeLayout>
然后用杉木