我有一个线性布局,有五个TextViews.假设用户点击第三个TextView; 我想将TextView扩展到整个屏幕.换句话说,我想在其他文本视图之上的同一活动中将第三个TextView显示为全屏.我该怎么做呢?
是的,我明白你说的问题了。请参阅下面的示例,我已经对其进行了测试以确保其有效。这可能不是最优雅的解决方案,但就是这样。
这次我将每个文本视图的高度设置为 0,权重设置为 1。这使得每个视图占据相同的高度切片。
<TextView
android:id="@+id/textview1"
android:layout_width="fill_parent"
android:layout_height="0px"
android:layout_weight="1"
android:text="text1"
/>
Run Code Online (Sandbox Code Playgroud)
在活动代码中,我有以下实例声明:
private TextView tv1;
private TextView tv2;
private TextView tv3;
private TextView tv4;
private TextView tv5;
private boolean singleViewExpanded = false;
private OnClickListener myOnClickListener = new OnClickListener(){
public void onClick(View arg0) {
if(singleViewExpanded)
{
showAllViews();
singleViewExpanded = false;
}
else
{
// Hide all views apart from the clicked one
hideAllViews();
arg0.setVisibility(View.VISIBLE);
singleViewExpanded = true;
}
}
};
Run Code Online (Sandbox Code Playgroud)
singleViewExpanded 可让您跟踪是显示所有视图还是仅显示一个视图。onClickListener 在这里定义,以便我们可以为每个 TextView 设置它。
这些是显示和隐藏方法:
private void showAllViews()
{
tv1.setVisibility(View.VISIBLE);
tv2.setVisibility(View.VISIBLE);
tv3.setVisibility(View.VISIBLE);
tv4.setVisibility(View.VISIBLE);
tv5.setVisibility(View.VISIBLE);
}
private void hideAllViews()
{
tv1.setVisibility(View.GONE);
tv2.setVisibility(View.GONE);
tv3.setVisibility(View.GONE);
tv4.setVisibility(View.GONE);
tv5.setVisibility(View.GONE);
}
Run Code Online (Sandbox Code Playgroud)
最后,在 onCreate 方法中连接 onClick 处理程序:
tv1 = (TextView)findViewById(R.id.textview1);
tv2 = (TextView)findViewById(R.id.textview2);
tv3 = (TextView)findViewById(R.id.textview3);
tv4 = (TextView)findViewById(R.id.textview4);
tv5 = (TextView)findViewById(R.id.textview5);
tv1.setOnClickListener(myOnClickListener);
tv2.setOnClickListener(myOnClickListener);
tv3.setOnClickListener(myOnClickListener);
tv4.setOnClickListener(myOnClickListener);
tv5.setOnClickListener(myOnClickListener);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15160 次 |
| 最近记录: |