Activity中操作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"
tools:context=".MainActivity" >

<HorizontalScrollView
android:id="@+id/sc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none" >

<LinearLayout
android:id="@+id/line_sc"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</LinearLayout>
</HorizontalScrollView>

<LinearLayout
android:id="@+id/view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/sc"
/>

<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/view" >
</android.support.v4.view.ViewPager>

</RelativeLayout>

 
   

package com.bwie.test;

import java.util.ArrayList;

import com.bwie.adapter.MyAdapter;
import com.bwie.fragment.F1;
import com.bwie.utils.Myutil;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.DisplayMetrics;
import android.view.Menu;
import android.view.View;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;

public class MainActivity extends FragmentActivity {

private LinearLayout line_sc;
private HorizontalScrollView sc;
private String[] column = new String[] { "舍内要闻", "本社介绍", "履行职能", "自身建设",
"社员风采", "自我介绍", "校内趣闻", "爆料" };
private ArrayList<Fragment> list;
private ViewPager vp;
private int widthPixels;
private ArrayList<TextView> list_view;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

/**
* 获取窗口的 宽度
*/
widthPixels=getWindowManager().getDefaultDisplay().getWidth();

// 初始化数据
init();

// 获取栏目的数据
getColumn();

// 创建fragment数据
setFragment();

// 为vp设置数据
FragmentManager fm = getSupportFragmentManager();
vp.setAdapter(new MyAdapter(fm, list));

setTitle_1(vp.getCurrentItem());

// 为vp设置页面滑动监听
vp.setOnPageChangeListener(new OnPageChangeListener() {

@Override
public void onPageSelected(int arg0) {

//设置游标
setTitle_1(arg0);

//设置滑动
setAutoScroll(arg0);

}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub

}

@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub

}
});

}

protected void setAutoScroll(int p) {
// TODO Auto-generated method stub

//获取当前要展示的游标
TextView textView = list_view.get(p);
//获取其宽度
int w = textView.getMeasuredWidth();
int left = textView.getLeft();
int address=left-widthPixels/2;

sc.smoothScrollTo(address, 0);

}

private void setFragment() {

// 创建集合存放fragment对象
list = new ArrayList<Fragment>();
for (int i = 0; i < column.length; i++) {
F1 f1 = new F1();

// 传值
Bundle b = new Bundle();
b.putInt("column", i);
f1.setArguments(b);

// 将创建的fragment添加到集合中
list.add(f1);
}
}
private void setTitle_1(int arg0) {
//设置当前显示的textview控件
TextView textView = list_view.get(arg0);
//将当前的textview显示
textView.setVisibility(View.VISIBLE);

for(int i=0;i<list_view.size();i++)
{
TextView tv = list_view.get(i);

if(tv!=textView)
{
tv.setVisibility(View.GONE);
}
}
}

private void getColumn() {
// TODO Auto-generated method stub

list_view = new ArrayList<TextView>();
for (int i = 0; i < column.length; i++) {

// 创建线性布局来整体作为水平滚动的子布局
LinearLayout sc = new LinearLayout(MainActivity.this);
// 设置线性布局的排列方式(垂直)
sc.setOrientation(1);
sc.setPadding(30, 0, 0, 0);

// 1.首先向线性布局中添加textview
// 创建textview
TextView tv = new TextView(MainActivity.this);
// 为tv设置数据
tv.setText(column[i]);
LinearLayout.LayoutParams params = new LayoutParams(
widthPixels / 5, LayoutParams.WRAP_CONTENT);
sc.addView(tv, params);

// 2.向线性布局中添加下面的横线
TextView tv_line = new TextView(MainActivity.this);
LinearLayout.LayoutParams params_2 = new LayoutParams(
widthPixels / 5, 10);
tv_line.setBackgroundColor(Color.GRAY);
tv_line.setVisibility(View.INVISIBLE);
list_view.add(tv_line);
sc.addView(tv_line, params_2);

// 将数据添加到 线性布局中
line_sc.addView(sc);
}

}

private void init() {
line_sc = (LinearLayout) findViewById(R.id.line_sc);
sc = (HorizontalScrollView) findViewById(R.id.sc);
vp = (ViewPager) findViewById(R.id.vp);

}

}

 
   
时间: 2024-10-02 10:09:46

Activity中操作xml布局的相关文章

C#.Net中操作XML方法一

我们知道XML是一种可标记性的语言,用来标记数据.定义数据类型,是一种执行用户对自己的标记语言进行定义的源语言.由于结构好.而且easy理解,就好比一棵树,层次关系分明,因此也经常把一些数据存储到XML文件里,以下就说一下怎样在C#中操作XML文件. 经常使用类 XmlDocument:XML的文档.就好比一棵树. XmlNode:XML中的结点类,就好比树枝. XmlElement:XML中元素,就好比树枝上的叶子. 既然我们已经了解这几个经常使用类的,那么让你画一棵树是不是非常easy呢?

第五篇:在SOUI中使用XML布局窗口

窗口布局的概念 每一个UI都是由大量的界面元素构成的,在Windows编程,这些界面元素的最小单位通常称之为控件. 布局就是这些控件在主界面上的大小及相对位置. 传统的布局一般使用一个4个绝对坐标来定义一个控件在主窗口的位置.对于窗口是固定大小的界面来说,这种方式是最简单有效的. 然而问题在于在Windows系统上编程,基本上很少有程序的窗口是固定大小的,用户希望它的窗口能够随时调整大小.调整大小后界面里的控件还能够按照一定的规则进行重排. 我自己最讨厌的就是在WM_SIZE里重排控件位置. 随

Flex中操作XML的E4X方法

用于处理 XML 的 E4X 方法 Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本 ECMAScript for XML 规范定义了一组用于使用 XML 数据的类和功能.这些类和功能统称为 E4X.ActionScript 3.0 包含以下 E4X 类:XML.XMLList.QName 和 Namespace. E4X 类的方法.属性和运算符旨在实现以下目标: 简单 - 在可能的情况下,使用 E4X 可以更容易地编写和理解用于使用 XML 数据的代码. 一致

详细介绍Flex中操作XML

一  在介绍Flex中操作XML之前,首先简单介绍下XML中的基本术语. 元素:XML中拥有开始标签和结束标签的这一块称为“元素”    节点:把XML元素与文本结合起来统称为节点    根节点:位于整个XML文当顶端的节点    文本节点:包含文本的节点    属性:元素的组成部分,以键/值形式放在元素标签内 用一个例子来说明 <root_node><!--这是一个根节点也是一个元素--> <node attribute="value"><!

VC++中操作XML(MFC、SDK)转

[转]VC++中操作XML(MFC.SDK) XML在Win32程序方面应该没有在Web方面应用得多,很多Win32程序也只是用XML来存存配置信息而已,而且没有足够的好处的话还不如用ini.VC++里操作XML有两个库可以用:MSXML和XmlLite.MSXML又细分了两种接口:DOM和SAX2.XP没自带有XmlLite,只自带有2.x.3.x版的MSXML,不支持SAX2(需要MSXML 4.0以上),所以优先使用DOM.DOM是以COM形式提供的,VC++里调用DOM可以分3种方法:1

C#中操作XML (修改完整版)

1.新建一个XML文件(bookstore.xml)如下: <?xml version="1.0" encoding="gb2312"?><bookstore>  <book genre="fantasy" ISBN="2-3631-4">    <title>Oberon's Legacy</title>    <author>Corets, Eva&l

C#中操作xml文件(插入节点、修改、删除)

已知有一个XML文件(bookstore.xml)如下:     <?xml   version="1.0"   encoding="gb2312"?>     <bookstore>         <book   genre="fantasy"   ISBN="2-3631-4">             <title>Oberon's   Legacy</title&

java中操作xml的方法总结

一丶常用方法 主要有3个方面, 1读取xml文件, 2使用xpath根据指定路径获取某一节点数据 3, xml和java bean的转换 XmlUtils.java /** * 和cn.hutool.core.util.XmlUtil许多功能重合, 本类可以当做学习的例子 * 可以直接使用cn.hutool.core.util.XmlUtil * * @author TimFruit * @date 19-11-2 下午5:22 */ public class XmlUtils { // ---

Activity中添加了布局文件界面不显示

1.问题 今天写了一个页面,感觉没有任何问题,在as中的预览视图中也显示出了视图(如下图1),可是我跑到模拟器中不显示(如下图2) (图1) (图2) 2.原因 先看一下代码: @Override public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) { super.onCreate(savedInstanceState, persistentState); setContentVie