将Android视图展开为全屏

Dal*_*ngh 7 android

我有一个线性布局,有五个TextViews.假设用户点击第三个TextView; 我想将TextView扩展到整个屏幕.换句话说,我想在其他文本视图之上的同一活动中将第三个TextView显示为全屏.我该怎么做呢?

Gar*_*ght 1

是的,我明白你说的问题了。请参阅下面的示例,我已经对其进行了测试以确保其有效。这可能不是最优雅的解决方案,但就是这样。

这次我将每个文本视图的高度设置为 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)