Android WebView但没有其他组件

时间:2017-03-03 13:14:49

标签: android xml webview

正在寻找一个网络,以便在侧边按钮和webview旁边显示Textviews。在代码下方运行时,webview上唯一可用的是Activity

public class Tab2Activity extends Activity
{
    private WebView xWebview ;



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


        ///////////////////////////////////////////////

        TextView tvVenue = (TextView)findViewById(R.id.venue);
        TextView tvAddress = (TextView)findViewById(R.id.address);
        TextView tvCity = (TextView)findViewById(R.id.city);
        TextView tvPostCode = (TextView)findViewById(R.id.postcode);
        TextView tvDate = (TextView)findViewById(R.id.Vdate);
        TextView tvTime = (TextView)findViewById(R.id.Vtime);




        Button fest = (Button)findViewById(R.id.veganfestival);
        Button nav = (Button)findViewById(R.id.nav);
        Button buyTicket = (Button)findViewById(R.id.buyticket);

        fest.setText(MainActivity.whichFest);

        if (MainActivity.whichFest.equals("Aberdeen"))
        {
            tvVenue.setText("Aberdeen Football Club");
            tvAddress.setText("Pittodrie Street");
            tvCity.setText("Aberdeen");
            tvPostCode.setText("AB24 5QH");
            tvDate.setText("Saturday 28th May 2017");
            tvTime.setText("10:30am - 4pm");
            venueLocation="Aberdeen Football Club";

        }
        //////////////////////////////////////////////
        if (MainActivity.whichFest.equals("Newcastle"))
        {
            tvVenue.setText("The Assembly Rooms");
            tvAddress.setText("Fenkle Street");


        xWebview = new WebView(this);

        xWebview.getSettings().setJavaScriptEnabled(true); // enable javascript


        xWebview.setWebChromeClient(new WebChromeClient());
        xWebview.clearCache(true);
        xWebview.getSettings().setUserAgentString("Android WebView");
        xWebview.loadUrl(MainActivity.MapLocation);
        setContentView(xWebview);
}

这是XML

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools"
    android:gravity="center"
    android:background="#332b2b"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/linearlayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"

        android:orientation="vertical" >

        <Button
            android:id="@+id/veganfestival"

            android:text="Aberdeen"
            android:textColor="#FFFFFF"
            android:textSize="30sp"

            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:background="@drawable/buttonshape"
            android:shadowColor="#A8A8A8"
            android:shadowDx="0"
            android:shadowDy="0"
            android:shadowRadius="5"

            />
        <TextView
            android:id="@+id/blank"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:textSize="20dp"
            android:textColor="#ffffff" />
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="#6f844a" />
        <TextView
            android:id="@+id/venue"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Venue"
            android:textSize="20dp"
            android:textColor="#ffffff" />

        <TextView
            android:id="@+id/address"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Address"
            android:textSize="20dp"
            android:textColor="#ffffff" />
        <TextView
            android:id="@+id/city"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="City"
            android:textSize="20dp"
            android:textColor="#ffffff" />
        <TextView
            android:id="@+id/postcode"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Postcode"
            android:textSize="20dp"
            android:textColor="#ffffff" />
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="#6f844a" />
        <TextView
            android:id="@+id/Vdate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Date"
            android:textSize="20dp"
            android:textColor="#ffffff" />
        <TextView
            android:id="@+id/Vtime"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Time"
            android:textSize="20dp"
            android:textColor="#ffffff" />
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="#6f844a" />

        <TextView
            android:id="@+id/blankagain"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:textSize="20dp"
            android:textColor="#ffffff" />

        <Button
            android:id="@+id/buyticket"

            android:text="Buy Ticket"
            android:textColor="#FFFFFF"
            android:textSize="30sp"

            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:background="@drawable/buttonshape"
            android:shadowColor="#A8A8A8"
            android:shadowDx="0"
            android:shadowDy="0"
            android:shadowRadius="5"

            />
        <TextView
            android:id="@+id/blankmore"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:textSize="20dp"
            android:textColor="#ffffff" />

        <WebView
            android:id="@+id/webviewb"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            />

        <Button
            android:id="@+id/nav"

            android:text="Take Me There"
            android:textColor="#FFFFFF"
            android:textSize="30sp"

            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:background="@drawable/buttonshape"
            android:shadowColor="#A8A8A8"
            android:shadowDx="0"
            android:shadowDy="0"
            android:shadowRadius="5"

            />


    </LinearLayout>
    </ScrollView>

如果有人有解决方法或有关如何实现这一目标的建议 - 我们将不胜感激。

1 个答案:

答案 0 :(得分:2)

问题显然与XML有关,因为webview占用了所有可用空间。

考虑以下因素:

  • WebView的宽度和高度为&#34; fill_parent&#34;,这意味着完全的高度与它所包含的LinearLayout相同。

  • 您的TextViews和按钮也包含在同一个LinearLayout中,不允许它们可见,因为webview占用了所有空间。

我建议将webview移动到不同的布局(可以是线性或相对布局)。根据视图的需要,您可以使用权重,dps或仅通过包装内容来定义文本视图和按钮使用的空间。

如果您希望webview使用所有剩余的空间&#34;你可以使用LinearLayout,并在这种情况下给你的WebView权重为1.这样的东西:

<LinearLayout 
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:orientation="horizontal"
      >

     <Button
        android:layout_width = "match_parent"
        android:layout_weight = "0"
        android:layout_height = "wrap_content"
        android:text="text!"/>
     <WebView
        android:layout_width = "fill_parent"
        android:layout_height = "wrap_content"
        android:layout_weight = "1"/>
     <Button
        android:layout_width = "80dp"
        android:layout_weight = "0"
        android:layout_height = "wrap_content"
        android:text="text!"/>   
 </LinearLayout>