Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 远程视图+;文本视图+;地心引力_Android_Textview - Fatal编程技术网

Android 远程视图+;文本视图+;地心引力

Android 远程视图+;文本视图+;地心引力,android,textview,Android,Textview,我有一个带有文本视图的应用程序小部件 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id

我有一个带有文本视图的应用程序小部件

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView
    android:id="@+id/widgetText"  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:text="@string/defaultWidgetText"
    android:gravity="center"
    />
</FrameLayout>
从远程视图。但这会导致“加载小部件时出现问题” 其他setInt(…)工作正常

我不想再创建一个文本视图或布局。有没有其他方法可以改变重力呢?

所以。。。这是我的解决办法。 小部件布局:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView
    android:id="@+id/top_left_text"  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:visibility="invisible"
    android:gravity="top|left"
    />
<TextView
    android:id="@+id/top_text"  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:visibility="invisible"
    android:gravity="top|center_horizontal"
    />
<TextView
    android:id="@+id/top_right_text"  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:visibility="invisible"
    android:gravity="top|right"
    />

<TextView
    android:id="@+id/left_text"  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:visibility="invisible"
    android:gravity="left|center_vertical"
    />
<TextView
    android:id="@+id/center_text"  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:visibility="visible"
    android:gravity="center"
    />
<TextView
    android:id="@+id/right_text"  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:visibility="invisible"
    android:gravity="right|center_vertical"
    />

<TextView
    android:id="@+id/bottom_left_text"  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:visibility="invisible"
    android:gravity="bottom|left"
    />
<TextView
    android:id="@+id/bottom_text"  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:visibility="invisible"
    android:gravity="bottom|center_horizontal"
    />
<TextView
    android:id="@+id/bottom_right_text"  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:visibility="invisible"
    android:gravity="bottom|right"
    />
</FrameLayout>

和更新(…)方法:

widgetViews=newhashtable();
widgetViews.put(重力左上角,R.id.TOP左上角文本);
widgetViews.put(重力图顶部,R.id.顶部,文本);
widgetViews.put(重力右上方,R.id.TOP右上方);
widgetViews.put(重力左,R.id.LEFT_文本);
widgetViews.put(重心,R.id.CENTER\U文本);
widgetViews.put(重力向右,R.id.RIGHT\u文本);
widgetViews.put(重力\底部\左侧,R.id.底部\左侧\文本);
widgetViews.put(重力底部,R.id.BOTTOM\u文本);
widgetViews.put(重力\底部\右侧,R.id.底部\右侧\文本);
意向意向=新意向(上下文,MinimalisticNotesWidgetActivity.class);
PendingEvent PendingEvent=PendingEvent.getActivity(上下文,0,意图,0);
RemoteView视图=新的RemoteView(context.getPackageName(),R.layout.widget_layout);
for(int-id:widgetViews.values())
{
views.setViewVisibility(id,View.INVISIBLE);
}
int id=widgetViews.get(textGravity);
views.setOnClickPendingEvent(id,PendingEvent);
views.setTextViewText(id,widgetText);
setFloat(id,“setTextSize”,fontSize);
views.setInt(id,“setTextColor”,textColor);
views.setViewVisibility(id,View.VISIBLE);
另外,我知道,这是一种糟糕的编码风格,但互联网上的其他变体看起来都是一样的=(

我的解决方案是:

// Text Align
int gravity = widget_pf.getInt(Constants.Prefs.WIDGET_TEXT_ALIGN, 2);
if (gravity == 0)
    remoteViews.setInt(R.id.BalancesLinLayout, "setGravity", Gravity.LEFT);
else if (gravity == 1)
    remoteViews.setInt(R.id.BalancesLinLayout, "setGravity", Gravity.CENTER_HORIZONTAL);
else
    remoteViews.setInt(R.id.BalancesLinLayout, "setGravity", Gravity.RIGHT);
在widget_layout.xml中:

<LinearLayout
    android:id="@+id/BalancesLinLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical" >

        <TextView
            android:id="@+id/SampleText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ellipsize="marquee"
            android:singleLine="true"
            android:textColor="#FFFFFF"
            android:textSize="9sp" />

</LinearLayout>

到目前为止,这是非常简单的

// Text Align
int gravity = widget_pf.getInt(Constants.Prefs.WIDGET_TEXT_ALIGN, 2);
if (gravity == 0)
    remoteViews.setInt(R.id.BalancesLinLayout, "setGravity", Gravity.LEFT);
else if (gravity == 1)
    remoteViews.setInt(R.id.BalancesLinLayout, "setGravity", Gravity.CENTER_HORIZONTAL);
else
    remoteViews.setInt(R.id.BalancesLinLayout, "setGravity", Gravity.RIGHT);
<LinearLayout
    android:id="@+id/BalancesLinLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical" >

        <TextView
            android:id="@+id/SampleText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ellipsize="marquee"
            android:singleLine="true"
            android:textColor="#FFFFFF"
            android:textSize="9sp" />

</LinearLayout>