Android移动布局分隔符

Android移动布局分隔符,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,嗨,伙计们, 我已经为我的平板电脑创建了一个简单的应用程序,该应用程序是一个主/详细布局,仅在横向模式下工作 线性布局中有两个片段: 第一个片段包含一个ListView 第二个片段包含一个TextView 我想在两个片段之间移动分隔符,以便在触摸分隔符时调整大小/放大,这是否可能与布局属性o参数有关,或者我需要开发代码 我无法添加图像示例,但如果在横向模式下打开电子邮件应用程序,则可以在列表电子邮件和所选邮件之间移动分隔符 我已经为平板电脑10.1构建了横向模式的解决方案: <Relati

嗨,伙计们, 我已经为我的平板电脑创建了一个简单的应用程序,该应用程序是一个主/详细布局,仅在横向模式下工作

线性布局中有两个片段: 第一个片段包含一个ListView 第二个片段包含一个TextView

我想在两个片段之间移动分隔符,以便在触摸分隔符时调整大小/放大,这是否可能与布局属性o参数有关,或者我需要开发代码

我无法添加图像示例,但如果在横向模式下打开电子邮件应用程序,则可以在列表电子邮件和所选邮件之间移动分隔符

我已经为平板电脑10.1构建了横向模式的解决方案:

<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>

然后用杉木